{"version":3,"mappings":"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AK,QACP,EACAA,EAAA,IAAC,QACC,EAAE,kQACF,KAAK,UACP,EACAA,EAAA,IAAC,QACC,EAAE,2GACF,KAAK,UACP,EACAA,EAAA,IAAC,QACC,EAAE,mHACF,KAAK,UACP,EACAA,EAAA,IAAC,QACC,EAAE,gSACF,KAAK,UACP,EACAA,EAAA,IAAC,QACC,EAAE,o8BACF,KAAK,UACP,EACAA,EAAA,IAAC,QACC,EAAE,4qDACF,KAAK,UACP,EACAA,EAAA,IAAC,QACC,EAAE,+JACF,KAAK,QACP,EACAA,EAAA,IAAC,QACC,EAAE,2HACF,KAAK,QACP,EACAA,EAAA,IAAC,QACC,EAAE,kHACF,KAAK,QACP,EACAA,EAAA,IAAC,QACC,EAAE,gQACF,KAAK,UACP,EACAA,EAAA,IAAC,QACC,EAAE,6kBACF,KAAK,QACP,EACAA,EAAA,IAAC,QACC,EAAE,mJACF,KAAK,UACP,EACAA,EAAA,IAAC,QACC,EAAE,iGACF,KAAK,QACP,EACAA,EAAA,IAAC,QACC,EAAE,6VACF,KAAK,UACP,EACAA,EAAA,IAAC,QACC,EAAE,2kBACF,KAAK,UACP,EACAA,EAAA,IAAC,QACC,EAAE,0eACF,KAAK,UACP,EACAA,EAAA,IAAC,QACC,EAAE,kFACF,KAAK,UACP,EACAA,EAAA,IAAC,QACC,EAAE,6nBACF,KAAK,UACP,EACAA,EAAA,IAAC,QACC,EAAE,+VACF,KAAK,QACP,EACAA,EAAA,IAAC,QACC,EAAE,iXACF,KAAK,QACP,EACAA,EAAA,IAAC,QACC,EAAE,+kDACF,KAAK,QACP,EACAA,EAAA,IAAC,QACC,EAAE,qgEACF,KAAK,UACL,YAAY,MACd,EACAA,EAAA,IAAC,QACC,EAAE,mNACF,KAAK,UACP,EACAA,EAAA,IAAC,QACC,EAAE,0LACF,KAAK,QACP,EACAA,EAAA,IAAC,QACC,EAAE,6iBACF,KAAK,UACP,EACAA,EAAA,IAAC,QACC,EAAE,mFACF,KAAK,UACP,EACAA,EAAA,IAAC,QACC,EAAE,oEACF,KAAK,QACP,EACAA,EAAA,IAAC,QACC,EAAE,iWACF,KAAK,UACP,EACAA,EAAA,IAAC,QACC,EAAE,kJACF,KAAK,QACP,EACAA,EAAA,IAAC,QACC,EAAE,oEACF,KAAK,UACP,EACAA,EAAA,IAAC,QACC,EAAE,6ldACF,KAAK,UACP,EACAA,EAAA,IAAC,QACC,EAAE,iiJACF,KAAK,UACP,EACAA,EAAA,IAAC,QACC,EAAE,8qBACF,KAAK,UACP,EACAA,EAAA,IAAC,QACC,EAAE,22BACF,KAAK,UACP,EACAA,EAAA,IAAC,QACC,EAAE,0hBACF,KAAK,UACP,EACAA,EAAA,IAAC,QACC,EAAE,2kBACF,KAAK,UACP,EACAA,EAAA,IAAC,QACC,EAAE,klBACF,KAAK,UACP,EACAA,EAAA,IAAC,QACC,EAAE,omBACF,KAAK,UACP,EACAA,EAAA,IAAC,QACC,EAAE,8eACF,KAAK,UACP,EACAA,EAAA,IAAC,QACC,EAAE,0qBACF,KAAK,UACP,EACAA,EAAA,IAAC,QACC,EAAE,6qBACF,KAAK,UACP,EACAA,EAAA,IAAC,QACC,EAAE,0tBACF,KAAK,UACP,EACAA,EAAA,IAAC,QACC,EAAE,uwBACF,KAAK,UACP,EACAA,EAAA,IAAC,QACC,EAAE,28BACF,KAAK,UACP,EACAA,EAAA,IAAC,QACC,EAAE,6nCACF,KAAK,UACP,EACAA,EAAA,IAAC,QACC,EAAE,02BACF,KAAK,UACP,EACAA,EAAA,IAAC,QACC,EAAE,orBACF,KAAK,UACP,EACAA,EAAA,IAAC,QACC,EAAE,gfACF,KAAK,UACP,EACAA,EAAA,IAAC,QACC,EAAE,+tBACF,KAAK,UACP,EACAA,EAAA,IAAC,QACC,EAAE,owCACF,KAAK,UACP,EACAA,EAAA,IAAC,QACC,EAAE,09BACF,KAAK,UACP,EACAA,EAAA,IAAC,QACC,EAAE,k8BACF,KAAK,UACP,EACAA,EAAA,IAAC,QACC,EAAE,s4FACF,KAAK,UACP,EACAA,EAAA,IAAC,QACC,EAAE,syCACF,KAAK,UACP,EACAA,EAAA,IAAC,QACC,EAAE,ygCACF,KAAK,UACP,EACAA,EAAA,IAAC,QACC,EAAE,qrBACF,KAAK,UAC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EzB,OAAA1yB,EAAA,KAAC,OACC,MAAM,MACN,OAAO,MACP,QAAQ,cACR,KAAK,OACL,MAAM,6BAEN,UAAAZ,EAAA,IAAC,QACC,EAAE,kNACF,KAAK,UACP,EACAA,EAAA,IAAC,QACC,EAAE,qzBACF,KAAK,UACP,EACAA,EAAA,IAAC,QACC,EAAE,ysFACF,KAAK,UACP,EACAA,EAAA,IAAC,QACC,EAAE,q4BACF,KAAK,UACP,EACAA,EAAA,IAAC,QACC,EAAE,woCACF,KAAK,UACL,YAAY,OACd,EACAA,EAAA,IAAC,QACC,EAAE,8bACF,KAAK,QACP,EACAA,EAAA,IAAC,QACC,EAAE,gZACF,KAAK,QACP,EACAA,EAAA,IAAC,QACC,EAAE,kKACF,KAAK,QACP,EACAA,EAAA,IAAC,QACC,EAAE,uvFACF,KAAK,UACP,EACAA,EAAA,IAAC,QACC,EAAE,icACF,KAAK,UACP,EACAA,EAAA,IAAC,QACC,EAAE,u7EACF,KAAK,UACP,EACAA,EAAA,IAAC,QACC,EAAE,ueACF,KAAK,UACP,EACAA,EAAA,IAAC,QACC,EAAE,kTACF,KAAK,UACP,EACAA,EAAA,IAAC,QACC,EAAE,u9EACF,KAAK,UACP,EACAA,EAAA,IAAC,QACC,EAAE,ssEACF,KAAK,UACP,EACAA,EAAA,IAAC,QACC,EAAE,mlBACF,KAAK,UACP,EACAA,EAAA,IAAC,QACC,EAAE,+pKACF,KAAK,UACP,EACAA,EAAA,IAAC,QACC,EAAE,y5BACF,KAAK,UACP,EACAA,EAAA,IAAC,QACC,EAAE,skBACF,KAAK,QACP,EACAA,EAAA,IAAC,QACC,EAAE,oQACF,KAAK,QACP,EACAA,EAAA,IAAC,QACC,EAAE,gHACF,KAAK,QACP,EACAA,EAAA,IAAC,QACC,EAAE,kiDACF,KAAK,UACP,EACAA,EAAA,IAAC,QACC,EAAE,mHACF,KAAK,QACP,EACAA,EAAA,IAAC,QACC,EAAE,gQACF,KAAK,QACP,EACAA,EAAA,IAAC,QACC,EAAE,6bACF,KAAK,QACP,EACAA,EAAA,IAAC,QACC,EAAE,8SACF,KAAK,UACP,EACAA,EAAA,IAAC,QACC,EAAE,iNACF,KAAK,QACP,EACAA,EAAA,IAAC,QACC,EAAE,8SACF,KAAK,QACP,EACAA,EAAA,IAAC,QACC,EAAE,iHACF,KAAK,QACP,EACAA,EAAA,IAAC,QACC,EAAE,kwBACF,KAAK,QACP,EACAA,EAAA,IAAC,QACC,EAAE,kQACF,KAAK,QACP,EACAA,EAAA,IAAC,QACC,EAAE,mHACF,KAAK,QACP,EACAA,EAAA,IAAC,QACC,EAAE,gNACF,KAAK,QACP,EACAA,EAAA,IAAC,QACC,EAAE,oHACF,KAAK,QACP,EACAA,EAAA,IAAC,QACC,EAAE,gWACF,KAAK,QACP,EACAA,EAAA,IAAC,QACC,EAAE,gTACF,KAAK,UACP,EACAA,EAAA,IAAC,QACC,EAAE,+PACF,KAAK,QACP,EACAA,EAAA,IAAC,QACC,EAAE,siCACF,KAAK,UACP,EACAA,EAAA,IAAC,QACC,EAAE,8KACF,KAAK,UACP,EACAA,EAAA,IAAC,QACC,EAAE,2bACF,KAAK,UACP,EACAA,EAAA,IAAC,QACC,EAAE,45GACF,KAAK,UACP,EACAA,EAAA,IAAC,QACC,EAAE,u8BACF,KAAK,UACP,EACAA,EAAA,IAAC,QACC,EAAE,8YACF,KAAK,UACP,EACAA,EAAA,IAAC,QACC,EAAE,ynBACF,KAAK,QACP,EACAA,EAAA,IAAC,QACC,EAAE,yVACF,KAAK,QACP,EACAA,EAAA,IAAC,QACC,EAAE,gQACF,KAAK,UACP,EACAA,EAAA,IAAC,QACC,EAAE,+SACF,KAAK,UACP,EACAA,EAAA,IAAC,QACC,EAAE,iNACF,KAAK,QACP,EACAA,EAAA,IAAC,QACC,EAAE,0hBACF,KAAK,UACP,EACAA,EAAA,IAAC,QACC,EAAE,iNACF,KAAK,QACP,EACAA,EAAA,IAAC,QACC,EAAE,icACF,KAAK,UACP,EACAA,EAAA,IAAC,QACC,EAAE,+PACF,KAAK,UACP,EACAA,EAAA,IAAC,QACC,EAAE,o3DACF,KAAK,UACP,EACAA,EAAA,IAAC,QACC,EAAE,8VACF,KAAK,UACP,EACAA,EAAA,IAAC,QACC,EAAE,moGACF,KAAK,UACP,EACAA,EAAA,IAAC,QACC,EAAE,m0MACF,KAAK,UACP,EACAA,EAAA,IAAC,QACC,EAAE,s9DACF,KAAK,UACP,EACAA,EAAA,IAAC,QACC,EAAE,kcACF,KAAK,QACP,EACAA,EAAA,IAAC,QACC,EAAE,69DACF,KAAK,UACP,EACAA,EAAA,IAAC,QACC,EAAE,8SACF,KAAK,QACP,EACAA,EAAA,IAAC,QACC,EAAE,gTACF,KAAK,QACP,EACAA,EAAA,IAAC,QACC,EAAE,+SACF,KAAK,QACP,EACAA,EAAA,IAAC,QACC,EAAE,4rEACF,KAAK,UACP,EACAA,EAAA,IAAC,QACC,EAAE,kNACF,KAAK,UACP,EACAA,EAAA,IAAC,QACC,EAAE,oQACF,KAAK,QACP,EACAA,EAAA,IAAC,QACC,EAAE,oxCACF,KAAK,QACP,EACAA,EAAA,IAAC,QACC,EAAE,8VACF,KAAK,QACP,EACAA,EAAA,IAAC,QACC,EAAE,mKACF,KAAK,UACP,EACAA,EAAA,IAAC,QACC,EAAE,+YACF,KAAK,QACP,EACAA,EAAA,IAAC,QACC,EAAE,kHACF,KAAK,QACP,EACAA,EAAA,IAAC,QACC,EAAE,gWACF,KAAK,UACP,EACAA,EAAA,IAAC,QACC,EAAE,4eACF,KAAK,QACP,EACAA,EAAA,IAAC,QACC,EAAE,oKACF,KAAK,QACP,EACAA,EAAA,IAAC,QACC,EAAE,m+FACF,KAAK,UACP,EACAA,EAAA,IAAC,QACC,EAAE,iTACF,KAAK,UACP,EACAA,EAAA,IAAC,QACC,EAAE,kmEACF,KAAK,UACP,EACAA,EAAA,IAAC,QACC,EAAE,kNACF,KAAK,QACP,EACAA,EAAA,IAAC,QACC,EAAE,iTACF,KAAK,UACP,EACAA,EAAA,IAAC,QACC,EAAE,2lCACF,KAAK,QACP,EACAA,EAAA,IAAC,QACC,EAAE,wzEACF,KAAK,UACP,EACAA,EAAA,IAAC,QACC,EAAE,iRACF,KAAK,UACP,EACAA,EAAA,IAAC,QACC,EAAE,qWACF,KAAK,UACP,EACAA,EAAA,IAAC,QACC,EAAE,+bACF,KAAK,QACP,EACAA,EAAA,IAAC,QACC,EAAE,iWACF,KAAK,UACP,EACAA,EAAA,IAAC,QACC,EAAE,gZACF,KAAK,QACP,EACAA,EAAA,IAAC,QACC,EAAE,ihEACF,KAAK,UACL,YAAY,OACd,EACAA,EAAA,IAAC,QACC,EAAE,8eACF,KAAK,UACP,EACAA,EAAA,IAAC,QACC,EAAE,uqBACF,KAAK,UACP,EACAA,EAAA,IAAC,QACC,EAAE,8SACF,KAAK,UACP,EACAA,EAAA,IAAC,QACC,EAAE,ouCACF,KAAK,UACL,YAAY,OACd,EACAA,EAAA,IAAC,QACC,EAAE,yhBACF,KAAK,UACL,YAAY,OACd,EACAA,EAAA,IAAC,QACC,EAAE,gQACF,KAAK,UACL,YAAY,OACd,EACAA,EAAA,IAAC,QACC,EAAE,4YACF,KAAK,UACP,EACAA,EAAA,IAAC,QACC,EAAE,4eACF,KAAK,UACL,YAAY,OACd,EACAA,EAAA,IAAC,QACC,EAAE,o3EACF,KAAK,UACP,EACAA,EAAA,IAAC,QACC,EAAE,6eACF,KAAK,UACP,EACAA,EAAA,IAAC,QACC,EAAE,42KACF,KAAK,UACP,EACAA,EAAA,IAAC,QACC,EAAE,gRACF,KAAK,UACP,EACAA,EAAA,IAAC,QACC,EAAE,kcACF,KAAK,UACP,EACAA,EAAA,IAAC,QACC,EAAE,g3CACF,KAAK,UACP,EACAA,EAAA,IAAC,QACC,EAAE,sVACF,KAAK,UACP,EACAA,EAAA,IAAC,QACC,EAAE,iQACF,KAAK,UACP,EACAA,EAAA,IAAC,QACC,EAAE,iiBACF,KAAK,UACP,EACAA,EAAA,IAAC,QACC,EAAE,+VACF,KAAK,UACP,EACAA,EAAA,IAAC,QACC,EAAE,q/DACF,KAAK,UACP,EACAA,EAAA,IAAC,QACC,EAAE,4wBACF,KAAK,UACP,EACAA,EAAA,IAAC,QACC,EAAE,gQACF,KAAK,UACP,EACAA,EAAA,IAAC,QACC,EAAE,kNACF,KAAK,UACL,YAAY,OACd,EACAA,EAAA,IAAC,QACC,EAAE,oTACF,KAAK,UACP,EACAA,EAAA,IAAC,QACC,EAAE,yfACF,KAAK,UACP,EACAA,EAAA,IAAC,QACC,EAAE,qiBACF,KAAK,UACL,YAAY,OACd,EACAA,EAAA,IAAC,QACC,EAAE,4hBACF,KAAK,UACP,EACAA,EAAA,IAAC,QACC,EAAE,iTACF,KAAK,UACP,EACAA,EAAA,IAAC,QACC,EAAE,ubACF,KAAK,UACP,EACAA,EAAA,IAAC,QACC,EAAE,8gEACF,KAAK,UACP,EACAA,EAAA,IAAC,QACC,EAAE,mQACF,KAAK,UACP,EACAA,EAAA,IAAC,QACC,EAAE,+/CACF,KAAK,UACP,EACAA,EAAA,IAAC,QACC,EAAE,izDACF,KAAK,UACP,EACAA,EAAA,IAAC,QACC,EAAE,kMACF,KAAK,UACP,EACAA,EAAA,IAAC,QACC,EAAE,iKACF,KAAK,UACP,EACAA,EAAA,IAAC,QACC,EAAE,0kBACF,KAAK,QACP,EACAA,EAAA,IAAC,QACC,EAAE,mLACF,KAAK,QACP,EACAA,EAAA,IAAC,QACC,EAAE,8MACF,KAAK,UACP,EACAA,EAAA,IAAC,QACC,EAAE,0hBACF,KAAK,UACP,EACAA,EAAA,IAAC,QACC,EAAE,kcACF,KAAK,UACP,EACAA,EAAA,IAAC,QACC,EAAE,icACF,KAAK,UACP,EACAA,EAAA,IAAC,QACC,EAAE,kWACF,KAAK,UACP,EACAA,EAAA,IAAC,QACC,EAAE,+nBACF,KAAK,UACP,EACAA,EAAA,IAAC,QACC,EAAE,qmBACF,KAAK,UACP,EACAA,EAAA,IAAC,QACC,EAAE,oKACF,KAAK,UACP,EACAA,EAAA,IAAC,QACC,EAAE,oQACF,KAAK,UACP,EACAA,EAAA,IAAC,QACC,EAAE,ywBACF,KAAK,UACP,EACAA,EAAA,IAAC,QACC,EAAE,mWACF,KAAK,UACP,EACAA,EAAA,IAAC,QACC,EAAE,utBACF,KAAK,UACP,EACAA,EAAA,IAAC,QACC,EAAE,kTACF,KAAK,UACP,EACAA,EAAA,IAAC,QACC,EAAE,8bACF,KAAK,UACP,EACAA,EAAA,IAAC,QACC,EAAE,6eACF,KAAK,UACP,EACAA,EAAA,IAAC,QACC,EAAE,ipBACF,KAAK,UACP,EACAA,EAAA,IAAC,QACC,EAAE,4oBACF,KAAK,UACP,EACAA,EAAA,IAAC,QACC,EAAE,iXACF,KAAK,UACP,EACAA,EAAA,IAAC,QACC,EAAE,kQACF,KAAK,UACP,EACAA,EAAA,IAAC,QACC,EAAE,quBACF,KAAK,UACP,EACAA,EAAA,IAAC,QACC,EAAE,kNACF,KAAK,UACP,EACAA,EAAA,IAAC,QACC,EAAE,mNACF,KAAK,UACP,EACAA,EAAA,IAAC,QACC,EAAE,o4BACF,KAAK,UACP,EACAA,EAAA,IAAC,QACC,EAAE,s8BACF,KAAK,UACP,EACAA,EAAA,IAAC,QACC,EAAE,8SACF,KAAK,UACP,EACAA,EAAA,IAAC,QACC,EAAE,gWACF,KAAK,UACP,EACAA,EAAA,IAAC,QACC,EAAE,8rBACF,KAAK,UACP,EACAA,EAAA,IAAC,QACC,EAAE,oWACF,KAAK,UACP,EACAA,EAAA,IAAC,QACC,EAAE,0VACF,KAAK,UACP,EACAA,EAAA,IAAC,QACC,EAAE,olBACF,KAAK,UACP,EACAA,EAAA,IAAC,QACC,EAAE,mTACF,KAAK,UACP,EACAA,EAAA,IAAC,QACC,EAAE,gNACF,KAAK,UACP,EACAA,EAAA,IAAC,QACC,EAAE,w/BACF,KAAK,UACP,EACAA,EAAA,IAAC,QACC,EAAE,6eACF,KAAK,UACP,EACAA,EAAA,IAAC,QACC,EAAE,mHACF,KAAK,UACP,EACAA,EAAA,IAAC,QACC,EAAE,6YACF,KAAK,UACP,EACAA,EAAA,IAAC,QACC,EAAE,oHACF,KAAK,UACP,EACAA,EAAA,IAAC,QACC,EAAE,2rBACF,KAAK,UACP,EACAA,EAAA,IAAC,QACC,EAAE,kNACF,KAAK,UACP,EACAA,EAAA,IAAC,QACC,EAAE,kXACF,KAAK,UACP,EACAA,EAAA,IAAC,QACC,EAAE,+PACF,KAAK,UACP,EACAA,EAAA,IAAC,QACC,EAAE,oHACF,KAAK,UACP,EACAA,EAAA,IAAC,QACC,EAAE,mQACF,KAAK,UACP,EACAA,EAAA,IAAC,QACC,EAAE,4UACF,KAAK,UACP,EACAA,EAAA,IAAC,QACC,EAAE,oNACF,KAAK,UACP,EACAA,EAAA,IAAC,QACC,EAAE,igBACF,KAAK,UACP,EACAA,EAAA,IAAC,QACC,EAAE,kNACF,KAAK,UACP,EACAA,EAAA,IAAC,QACC,EAAE,gKACF,KAAK,UACP,EACAA,EAAA,IAAC,QACC,EAAE,gmBACF,KAAK,UACP,EACAA,EAAA,IAAC,QACC,EAAE,oZACF,KAAK,UACP,EACAA,EAAA,IAAC,QACC,EAAE,8bACF,KAAK,UACP,EACAA,EAAA,IAAC,QACC,EAAE,4fACF,KAAK,UACP,EACAA,EAAA,IAAC,QACC,EAAE,4YACF,KAAK,UACP,EACAA,EAAA,IAAC,QACC,EAAE,8PACF,KAAK,UACP,EACAA,EAAA,IAAC,QACC,EAAE,iQACF,KAAK,UACP,EACAA,EAAA,IAAC,QACC,EAAE,6bACF,KAAK,UACP,EACAA,EAAA,IAAC,QACC,EAAE,kvBACF,KAAK,UACP,EACAA,EAAA,IAAC,QACC,EAAE,kNACF,KAAK,UACP,EACAA,EAAA,IAAC,QACC,EAAE,iNACF,KAAK,UACP,EACAA,EAAA,IAAC,QACC,EAAE,gmBACF,KAAK,UACP,EACAA,EAAA,IAAC,QACC,EAAE,kHACF,KAAK,UACP,EACAA,EAAA,IAAC,QACC,EAAE,6VACF,KAAK,UACP,EACAA,EAAA,IAAC,QACC,EAAE,kQACF,KAAK,UACP,EACAA,EAAA,IAAC,QACC,EAAE,wtBACF,KAAK,UACP,EACAA,EAAA,IAAC,QACC,EAAE,goBACF,KAAK,UACP,EACAA,EAAA,IAAC,QACC,EAAE,izBACF,KAAK,UACP,EACAA,EAAA,IAAC,QACC,EAAE,8hBACF,KAAK,UACP,EACAA,EAAA,IAAC,QACC,EAAE,2qBACF,KAAK,UACP,EACAA,EAAA,IAAC,QACC,EAAE,2oBACF,KAAK,UACP,EACAA,EAAA,IAAC,QACC,EAAE,gTACF,KAAK,UACP,EACAA,EAAA,IAAC,QACC,EAAE,uvhGACF,KAAK,UACP,EACAA,EAAA,IAAC,QACC,EAAE,kHACF,KAAK,UACP,EACAA,EAAA,IAAC,QACC,E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","names":["cn","inputs","twMerge","clsx","objectToFormData","values","formData","key","value","item","file","getRelativeTime","date","currentDate","formatRelative","getUserFullName","user","formatTimestamp","timestamp","options","formattedDate","validateStep","currentStep","pages","setErrors","currentPage","result","newErrors","err","getOptionsFromList","list","option","debounce","func","wait","timeout","args","TooltipProvider","TooltipPrimitive.Provider","Tooltip","TooltipPrimitive.Root","TooltipTrigger","TooltipPrimitive.Trigger","TooltipContent","React.forwardRef","className","sideOffset","props","ref","jsx","TooltipPrimitive.Content","buttonVariants","cva","Button","variant","size","asChild","tooltip","Comp","Slot","buttonElement","jsxs","initialState","authSlice","createSlice","state","action","setCredentials","setLogout","setUserDataLoading","authReducer","selectCurrentUser","selectUserId","BACKEND_URL","baseQuery","fetchBaseQuery","refreshTokenQuery","api","extraOptions","refreshTokenResponse","apiSlice","createApi","_builder","postApiSlice","builder","params","response","id","postId","apiKey","data","body","useCreatePostMutation","useGetPostsQuery","useLazyGetPostsQuery","useGetPostByIdQuery","useGetPostByUserIdQuery","useGetPostByIdAndApiKeyQuery","useUpdatePostAttachmentMutation","useUpdatePostDataMutation","useCreateDraftPostMutation","useLazyGetPostByIdQuery","useDeletePostDeleteMutation","useLazyGetSearchAutoCompleteQuery","Avatar","AvatarPrimitive.Root","AvatarImage","AvatarPrimitive.Image","AvatarFallback","AvatarPrimitive.Fallback","ProfilePicture","forwardRef","src","alt","likeApiSlice","useLikePostMutation","useUnlikePostMutation","globalSlice","setShowLoginDialog","setShowSignupDialog","setShowForgetPasswordDialog","gloablReducer","LikeButton","liked","likes","dispatch","useDispatch","like","unlike","handleDislike","e","handleLike","FcLike","Skeleton","OnefinityOfficialIcon","attachmentApiSlice","useGetPreSignedUrlQuery","useLazyGetPreSignedUrlQuery","getPublicFileFromS3","url","useFileDownloader","fetchPreSignedUrl","loading","setLoading","useState","error","setError","useCallback","resourcePath","fileName","preSignedUrl","blob","link","blobUrl","IPostAttachmentTypes","IAttachmentCategory","IBuiltWith","IOnefinityModel","IOnefinityController","IOnefinitySize","ISoftwareUsed","IWood","IMetals","IMDF","IEVA","IMaterialUsed","IJobType","IUnits","IZZeroPosition","IXYDatumPosition","ILaserOrEndmill","IBitType","IBitUsedUnit","IToolSetter","IProbeForZHeightCommand","filterAttachments","attachments","attachment","Post.IPostAttachmentTypes","Post.IAttachmentCategory","filterAttachmentsForCarousel","getGroupedOptionsFlat","groupedEnum","materialGroupKey","materialEnum","_","getGroupedOptionsFromEnumAsGroups","urlToFile","filename","contentType","type","getFilesByCategory","category","filteredAttachments","convertToPostUploadData","dto","thumbnailFile","mediaFiles","modelAttachments","models","modelFile","model","youtubeAttachments","_a","tag","_b","_c","_d","convertToPostDetailData","toolData","tool","_id","rest","convertToPostDetailAttachment","FeaturedCarouselCard","post","totalAttachmentsDownloadCount","count","totalDownloadCount","Link","Fragment","Download","FeaturedCarousel","posts","isLoading","emblaRef","emblaApi","useEmblaCarousel","selectedIndex","setSelectedIndex","scrollPrev","scrollNext","onSelect","useEffect","index","ChevronLeft","ChevronRight","Card","CardHeader","CardTitle","CardDescription","CardContent","CardFooter","DropdownMenu","DropdownMenuPrimitive.Root","DropdownMenuTrigger","DropdownMenuPrimitive.Trigger","DropdownMenuGroup","DropdownMenuPrimitive.Group","DropdownMenuSubTrigger","inset","children","DropdownMenuPrimitive.SubTrigger","DropdownMenuSubContent","DropdownMenuPrimitive.SubContent","DropdownMenuContent","DropdownMenuPrimitive.Portal","DropdownMenuPrimitive.Content","DropdownMenuItem","DropdownMenuPrimitive.Item","DropdownMenuCheckboxItem","checked","DropdownMenuPrimitive.CheckboxItem","DropdownMenuPrimitive.ItemIndicator","Check","DropdownMenuRadioItem","DropdownMenuPrimitive.RadioItem","Circle","DropdownMenuLabel","DropdownMenuPrimitive.Label","DropdownMenuSeparator","DropdownMenuPrimitive.Separator","badgeVariants","Badge","postStatusBadgeVariants","PostStatusIcon","visibility","Eye","Lock","PencilRuler","EyeOff","InfoIcon","PostStatusBadge","PostCard","authorName","authorAvatar","title","description","likesCount","commentsCount","createdAt","hasLikedByUser","isOnefinityOfficial","isOwner","navigate","useNavigate","deletePost","thumbnail","handleDelete","toast","handleEdit","EllipsisVertical","BiCommentDetail","useSearchParamActions","searchParams","setSearchParams","useSearchParams","getSearchParams","existingParam","param","appendSearchParam","replace","newParams","removeSearchParam","val","removeAllSearchParams","keys","getSearchParam","getAllSearchParams","FeaturedPostsList","postsData","setPostsData","page","setPage","useSelector","subCategory","postedAt","author","prev","newPosts","fetchMoreData","InfiniteScroll","_e","Separator","orientation","decorative","SeparatorPrimitive.Root","useGetCategoriesQuery","ICategoryType","CategoryFilter","categories","isLoadingPostCategories","ChevronDown","PostsFilterByDate","dateFilters","dateFilter","FilterBar","filterParams","filterSearchParams","X","Title","titles","Drawer","shouldScaleBackground","DrawerPrimitive","DrawerPortal","DrawerOverlay","DrawerContent","DrawerHeader","DrawerTitle","DrawerDescription","useGlobalSearch","query","setQuery","searchResults","setSearchResults","isSearchDrawerOpen","setIsSearchDrawerOpen","getPostsQuery","results","useHandleClickOutside","callback","enabled","eventTypes","excludeRefs","capture","useRef","callbackRef","handleClickOutside","event","target","el","isInside","isInExcluded","excludeRef","eventType","useGlobalSearchSuggestions","suggestions","setSuggestions","showSuggestions","setShowSuggestions","inputRef","getSearchAutoComplete","queryRef","abortRef","suggestionsRef","debouncedFetchSuggestions","currentQuery","unwrap","abort","searchSuggestions","Input","SearchBar","handleSearch","handleKeyDown","Search","AutoCompleteResults","handleSuggestionClick","suggestion","GlobalSearch","handleCloseSearchDrawer","XIcon","Landing","labelVariants","Label","LabelPrimitive.Root","Form","FormProvider","FormFieldContext","React.createContext","FormField","Controller","useFormField","fieldContext","React.useContext","itemContext","FormItemContext","getFieldState","formState","useFormContext","fieldState","FormItem","React.useId","FormLabel","formItemId","FormControl","formDescriptionId","formMessageId","FormDescription","FormMessage","commentApiSlice","comment","useGetCommentsQuery","useCreateCommentMutation","useDeleteCommentMutation","deltaToHtml","inputDelta","tempCont","Quill","isDeltaNotEmpty","delta","ops","removeKeysFromObject","obj","keysToRemove","cleanDelta","cleanedOps","op","postCommentSchema","z","useCommentForm","useForm","zodResolver","QuillEditor","readOnly","defaultValue","quillOptions","onTextChange","onSelectionChange","placeholder","containerRef","defaultValueRef","onTextChangeRef","onSelectionChangeRef","useLayoutEffect","container","editorContainer","quill","cleanedDelta","range","Textarea","gradientBg","PostCommentFormHeader","isAuthenticated","PostCommentForm","quillRef","commentForm","handleCommentSubmit","Delta","toolbarOptions","field","Timeline","React","TimelineItem","active","TimelineItemLabel","TimelineConnector","onClick","TimelineContent","TimelineContentLabel","TimelineContentDescription","DeletePostComment","userId","commentId","deltePostComment","handlePostCommentDelete","Trash2","CommentsTimeline","comments","activeIndex","setActiveIndex","handleScroll","scrollPosition","itemHeight","newActiveIndex","scrollToItem","NoComments","PostCommentList","CarouselContext","useCarousel","context","Carousel","opts","setApi","plugins","carouselRef","canScrollPrev","setCanScrollPrev","React.useState","canScrollNext","setCanScrollNext","React.useCallback","React.useEffect","CarouselContent","CarouselItem","CarouselPrevious","ArrowLeft","CarouselNext","ArrowRight","Vetric","width","height","carvecoIcon","getSoftwareToLink","extension","NotSupportedFileIcon","FileIcon","GetSupportedSoftware","softwareLink","NotSupportedCarouselItem","Viewer","lazy","PostCarouselItem","Suspense","PostDetailCarousel","modelIndex","setModelIndex","currentSlide","setCurrentSlide","NotFound","HomeIcon","Dialog","DialogPrimitive.Root","DialogTrigger","DialogPrimitive.Trigger","DialogPortal","DialogPrimitive.Portal","DialogClose","DialogPrimitive.Close","DialogOverlay","DialogPrimitive.Overlay","DialogContent","closeDialog","DialogPrimitive.Content","DialogHeader","DialogFooter","DialogTitle","DialogPrimitive.Title","DialogDescription","DialogPrimitive.Description","Facebook","color","backgroundColor","Twitter","socialPlatforms","WebShare","shareUrl","handleWebShare","Share2","ShareButton","copied","setCopied","open","setOpen","handleShare","platform","platformDetails","p","shareLink","copyLink","Table","TableHeader","TableBody","TableFooter","TableRow","TableHead","TableCell","TableCaption","DownloadModal","postTitle","downloadFile","downloadingId","setDownloadingId","getFileIcon","FileBox","ImageIcon","getFileExtension","matches","handleDownload","handleDownloadAll","postAttachmentsZip","Loader2","DescriptionWithLinks","linkRegex","tokens","lastIndex","match","OnefinityDetailsCard","onefinityController","onefinityModel","onefinitySize","builtWith","Switch","SwitchPrimitives.Root","SwitchPrimitives.Thumb","ToolsDataCard","showRelatedTools","setShowRelatedTools","filteredToolData","setFilteredToolData","currentAttachment","filteredData","handleCheckboxChange","Layers","currentModelIndex","JobDetailsCard","Ruler","JobSettingsCard","Settings2","ModalDetail","useParams","DownloadPostAttachementsModal","MAX_FILE_SIZE","ACCEPTED_IMAGE_TYPES","isValidFileType","profilePictureFileSchema","profilePictureUrlSchema","loginSchema","usernameSchema","signupBasicDetailsWithEmailSchema","signupBasicDetailsWithGoogleSchema","signupOtherDetailsSchema","ctx","forgetPasswordSchema","resetPasswordSchema","changePasswordSchema","useLoginForm","useSignupBasicDetailsForm","socialLogin","useSignupOtherDetailsForm","useForgetPasswordForm","useResetPasswordForm","useChangePasswordForm","authApiSlice","email","password","username","otp","userData","useGetUserQuery","useLoginMutation","useLogoutMutation","useSignupMutation","useLazyGetUserQuery","useResetPasswordMutation","useUpdateUserDataMutation","useChangePasswordMutation","useUpdateUserPasswordMutation","useCompleteUserSignupMutation","useLazyGetVerificationCodeQuery","useLazyGetGoogleSignInLinkQuery","useSendForgetPasswordEmailMutation","useValidateVerificationCodeMutation","useLazyCheckUsernameAvailabilityQuery","Google","Divider","text","LoginForm","login","isLoginLoading","getGoogleSignInLink","refetchUser","loginForm","handleLoginSubmit","handleGoogleLogin","handleOpenForgetPasswordModal","LoginDialog","loginDialog","fileFinityLogo","InputOTP","containerClassName","OTPInput","InputOTPGroup","InputOTPSlot","inputOTPContext","OTPInputContext","char","hasFakeCaret","isActive","InputOTPSeparator","Dot","FormSchema","INITIAL_RESEND_DELAY","MAX_RESEND_DELAY","RAPID_RESEND_THRESHOLD","RESET_TIME_THRESHOLD","VerifyAccountModal","resendTimer","setResendTimer","resendCount","setResendCount","lastResendTime","setLastResendTime","getVerificationCode","isGetVerificationCodeLoading","validateVerificationCode","isValidateLoading","form","calculateResendDelay","timeSinceLastResend","delay","lastSentTime","storedResendCount","timer","handleResend","now","newResendCount","handleValidateOtpSubmit","REGEXP_ONLY_DIGITS","Sheet","SheetPrimitive.Root","SheetTrigger","SheetPrimitive.Trigger","SheetPortal","SheetPrimitive.Portal","SheetOverlay","SheetPrimitive.Overlay","sheetVariants","SheetContent","side","SheetPrimitive.Content","SheetPrimitive.Close","SheetHeader","SheetTitle","SheetPrimitive.Title","SheetDescription","SheetPrimitive.Description","MobileNav","onLogout","Menu","Upload","Ellipsis","ForgetPasswordForm","forgetPasswordForm","sendPasswordResetEmail","isSendPasswordResetEmailLoading","handleForgetPasswordSubmit","handleOpenLoginModal","Mail","Undo2","ForgetPasswordDialog","forgetPasswordDialog","Navbar","isVerified","logout","showWelcome","setShowWelcome","handleDismissWelcome","handleLogout","ArrowUpRight","EditButton","editMode","toggleEditMode","Profile","updateUser","setEditMode","firstname","setFirstname","lastname","setLastname","NoPosts","UserPostsList","userPosts","MyModels","PrivateRoute","PreviewModalDetail","SectionHeader","align","DropZone","dragActiveClassName","onDrop","preview","setPreview","isDragging","setIsDragging","React.useRef","handleDragOver","handleDragLeave","handleDrop","files","dataTransfer","changeEvent","handleFileChange","ErrorMessage","ModelUpload","errors","setFormData","modelFiles","newModelList","newFile","existingModel","existingToolData","handleRemoveFile","removedModel","updatedModels","updatedToolData","logo","CarouselHeader","disabled","isValidYoutubeUrl","urlObj","domain","videoIdRegex","videoId","createEnum","modelUploadSchema","ext","imageExtensions","allowedMediaExtensions","mediaUploadSchema","urls","postUploadSchema","onefinityModelSchema","modelToolMappingSchema","modelToolMappingPageSchema","modelIdList","modelIdInToolDataList","jobSetupModelSchema","MediaUpload","youtubeUrl","setYoutubeUrl","errorMessage","setErrorMessage","newFiles","f","handleAddYoutubeUrl","ZodError","handleRemoveYoutubeUrl","urlToRemove","Youtube","FileImage","PostUploadSuccess","TextShimmer","Component","duration","spread","MotionComponent","motion","dynamicSpread","useMemo","PostStatus","usePostUploadForm","defaultValues","useOnefinityModelForm","useModelToolMappingForm","_f","useJobSetupModelForm","createTag","useCreateTagMutation","useGetTagsQuery","useDeleteTagMutation","ITagType","BasicDetails","uploadPostForm","postTags","refetchTags","isTagsLoading","handleCategoryChange","getPostCategoryOptions","getTagOptions","handleCreateTag","newTag","existingOptions","handleTagChange","handleInputChange","name","getObjectUrlFromFile","getThumbnailName","handleSelectChange","resetOnefinityDetails","Select","newValue","cat","CreatableSelect","tagId","t","selectedOption","OnefinityDetails","onefinityModelForm","RadioGroup","RadioGroupPrimitive.Root","RadioGroupItem","RadioGroupPrimitive.Item","RadioGroupPrimitive.Indicator","JobSetupDetails","jobSetupModelForm","handleNumberChange","jobType","position","parseGCode","gcode","lines","rapidMovePoints","linearMovePoints","x","y","currentPoints","line","matchX","matchY","matchZ","Vector3","getGcodeUnit","calculateBoundingBox","points","Box3","centerPoints","boundingBox","center","point","BoundingBox","box","boundingBoxColor","dTextColor","unit","depth","textSize","boxCenter","boxPoints","labelOffset","Line","Text","GCodeRenderer","modelColor","allPoints","centeredRapidMovePoints","centeredLinearMovePoints","centeredBoundingBox","gcodeMeasuringUnit","CenteredCamera","camera","useThree","cameraDistance","modelURL","enableGrid","gridColor","setGcode","gcodeText","Canvas","OrbitControls","Grid","Loader","ModelToolMapping","pageErrors","modelToolMappingForm","currentModel","setCurrentModel","validateAndSaveToolData","fieldErrors","messages","addToolData","newToolData","deleteToolData","toolId","handleModelChange","filteredModel","PostUpload","setCurrentStep","setIsLoading","createDraftPost","isCreateDraftPostLoading","updatePostData","isUpdatePostDataLoading","updatePostDataStatus","updatePostAttachment","isUpdatePostAttachmentLoading","updatePostAttachmentStatus","getPostByIdQuery","isGetPostByIdLoading","location","useLocation","handleCreateDraftPost","postFormData","createDraftPostRes","handleNext","nextPage","pageStep","handleBack","step","updateFormData","QueryStatus","Footer","scrollToTop","ArrowUp","AuthProvider","useProfilePhoto","maxSize","onChange","imagePreview","setImagePreview","objectUrl","acceptedFiles","fileRejections","errorMessages","rejection","getRootProps","getInputProps","isDragActive","useDropzone","removeImage","ProfilePhotoInput","forwardedRef","React.useImperativeHandle","handleClick","UserCircle","IS_USER_SINGUP_COMPLETE","IS_SOCIAL_LOGIN","isUsernameAvailable","setIsUsernameAvailable","tempUsername","setTempUsername","signupBaiscDetailsForm","checkUsernameAvailabilityInDb","checkUsernameAvailability","isAvailable","handleUsernameChange","formDataForReset","handlePhotoChange","CheckCircle2","XCircle","CNC_BRAND_OPTIONS","CNC_MODEL_OPTIONS","OtherDetails","brand","Signup","signup","isSignupLoading","completeSignup","isCompleteSignupLoading","handleSignupSubmit","handleLogin","RouteWrapper","PrivacyPolicy","ResetPasswordForm","resetPasswordForm","resetPassword","isResetPasswordLoading","resetToken","handleResetPasswordSubmit","ResetPassword","ChangePasswordForm","changePasswordForm","changePassword","isChangePasswordLoading","getCurrentUser","handleChangePasswordSubmit","ChangePassword","routerRoutes","createBrowserRouter","App","isSuccess","RouterProvider","store","configureStore","getDefaultMiddleware","Error","Sentry.init","Sentry.browserTracingIntegration","Sentry.replayIntegration","ReactDOM","ErrorBoundary","Provider","Toaster"],"ignoreList":[],"sources":["../../src/lib/utils.ts","../../src/components/ui/tooltip.tsx","../../src/components/ui/button.tsx","../../src/redux/auth/auth.slice.ts","../../src/redux/api/api.slice.ts","../../src/redux/post/post.api.slice.ts","../../src/components/ui/avatar.tsx","../../src/components/ui/profile-picture.tsx","../../src/redux/like/like.api.slice.ts","../../src/redux/global/global.slice.ts","../../src/redux/like/LikeButton.tsx","../../src/components/ui/skeleton.tsx","../../src/assets/onefinity_officials_badge.png","../../src/redux/attachment/attachment.api.slice.ts","../../src/lib/s3.ts","../../src/redux/post/post.d.ts","../../src/redux/post/post.utils.ts","../../src/pages/Landing/FeaturedCarousel.tsx","../../src/components/ui/card.tsx","../../src/components/ui/dropdown-menu.tsx","../../src/components/ui/badge.tsx","../../src/components/Post/PostStatusBadge.tsx","../../src/components/Post/PostCard.tsx","../../src/customHooks/useSearchParamActions.ts","../../src/redux/post/FeaturedPostsList.tsx","../../src/components/ui/separator.tsx","../../src/redux/category/category.api.slice.ts","../../src/redux/category/category.d.ts","../../src/redux/category/CategoryFilter.tsx","../../src/redux/post/PostsFilterByDate.tsx","../../src/pages/Landing/FilterBar.tsx","../../src/components/ui/title.tsx","../../src/components/ui/drawer.tsx","../../src/pages/Landing/GlobalSearch/hooks/useGlobalSearch.ts","../../src/customHooks/useHandleClickOutside.ts","../../src/pages/Landing/GlobalSearch/hooks/useGlobalSearchSuggestions.ts","../../src/components/ui/input.tsx","../../src/pages/Landing/GlobalSearch/components/SearchBar.tsx","../../src/pages/Landing/GlobalSearch/components/AutocompleteResults.tsx","../../src/pages/Landing/GlobalSearch/index.tsx","../../src/pages/Landing/index.tsx","../../src/components/ui/label.tsx","../../src/components/ui/form.tsx","../../src/redux/commet/comment.api.slice.ts","../../src/lib/quill.ts","../../src/redux/commet/comment.schema.ts","../../src/redux/commet/useCommentForm.ts","../../src/components/ui/quill-editor.tsx","../../src/components/ui/textarea.tsx","../../src/assets/gradient-bg.png","../../src/components/Comment/PostCommentFormHeader.tsx","../../src/redux/commet/PostCommentForm.tsx","../../src/components/ui/comments-timeline.tsx","../../src/redux/commet/DeletePostComment.tsx","../../src/components/Comment/CommentsTimeline.tsx","../../src/components/Illustrations/NoComments.tsx","../../src/redux/commet/PostCommentList.tsx","../../src/components/ui/carousel.tsx","../../src/components/Icons/FileIcons/Vetric.tsx","../../src/components/Icons/FileIcons/carveco.png","../../src/components/Post/NotSupportedCarouselItem.tsx","../../src/components/Post/PostDetailCarousel.tsx","../../src/pages/NotFound.tsx","../../src/components/ui/dialog.tsx","../../src/components/Icons/Facebook.tsx","../../src/components/Icons/Twitter.tsx","../../src/components/Post/ShareButton.tsx","../../src/components/ui/table.tsx","../../src/redux/post/DownloadPostAttachementsModal.tsx","../../src/components/Post/DescriptionWithLinks.tsx","../../src/pages/PostDetail/OnefinityDetailsCard.tsx","../../src/components/ui/switch.tsx","../../src/pages/PostDetail/ToolsDataCard.tsx","../../src/pages/PostDetail/JobDetailsCard.tsx","../../src/pages/PostDetail/JobSettingsCard.tsx","../../src/pages/PostDetail/index.tsx","../../src/redux/auth/auth.schema.ts","../../src/redux/auth/useAuthForm.ts","../../src/redux/auth/auth.api.slice.ts","../../src/components/Icons/Google.tsx","../../src/components/ui/divider.tsx","../../src/redux/auth/LoginForm.tsx","../../src/components/Navbar/LoginDialog.tsx","../../src/assets/filefinity_navbar_logo.png","../../src/components/ui/input-otp.tsx","../../src/redux/auth/VerifyAccountModal.tsx","../../src/components/ui/sheet.tsx","../../src/components/Navbar/MobileNav.tsx","../../src/redux/auth/ForgetPassword/ForgetPasswordForm.tsx","../../src/redux/auth/ForgetPassword/ForgetPasswordModal.tsx","../../src/components/Navbar/index.tsx","../../src/pages/Profile/index.tsx","../../src/components/Illustrations/NoPosts.tsx","../../src/redux/post/UserPostsList.tsx","../../src/pages/MyModels/index.tsx","../../src/components/PrivateRoute.tsx","../../src/pages/Preview/index.tsx","../../src/components/FullPageCarousel/SectionHeader.tsx","../../src/components/ui/drop-zone.tsx","../../src/components/ErrorMessage.tsx","../../src/pages/PostUpload/Carousel/ModelUpload.tsx","../../src/assets/filefinity-logo.png","../../src/components/FullPageCarousel/CarouselHeader.tsx","../../src/lib/youtube.ts","../../src/redux/post/post.schema.ts","../../src/pages/PostUpload/Carousel/MediaUpload.tsx","../../src/components/Illustrations/PostUploadSuccess.tsx","../../src/components/ui/text-shimmer.tsx","../../src/pages/PostUpload/Carousel/PostStatus.tsx","../../src/redux/post/usePostForm.ts","../../src/redux/tag/tag.api.slice.ts","../../src/redux/tag/tag.d.ts","../../src/pages/PostUpload/Carousel/BasicDetails.tsx","../../src/pages/PostUpload/Carousel/OnefinityDetails.tsx","../../src/components/ui/radio-group.tsx","../../src/pages/PostUpload/Carousel/JobSetupDetails.tsx","../../src/components/ModelViewer/utils.ts","../../src/components/ModelViewer/BoundingBox.tsx","../../src/components/ModelViewer/Renderer.tsx","../../src/components/ModelViewer/CenteredCamera.tsx","../../src/components/ModelViewer/index.tsx","../../src/pages/PostUpload/Carousel/Loader.tsx","../../src/pages/PostUpload/Carousel/ModelToolMapping.tsx","../../src/pages/PostUpload/index.tsx","../../src/components/Footer.tsx","../../src/redux/auth/auth.d.ts","../../src/components/ui/hooks/useProfilePhoto.ts","../../src/components/ui/profile-photo-input.tsx","../../src/pages/Signup/Carousel/BasicDetails.tsx","../../src/redux/auth/constants.ts","../../src/pages/Signup/Carousel/OtherDetails.tsx","../../src/pages/Signup/index.tsx","../../src/components/RouteWrapper.tsx","../../src/pages/PrivacyPolicy.tsx","../../src/redux/auth/ResetPassword/ResetPasswordForm.tsx","../../src/pages/ResetPassword/index.tsx","../../src/redux/auth/ChangePassword/ChangePasswordForm.tsx","../../src/pages/ChangePassword/index.tsx","../../src/config/routes.tsx","../../src/App.tsx","../../src/redux/store.ts","../../src/pages/Error.tsx","../../src/main.tsx"],"sourcesContent":["import { Dispatch } from 'react';\nimport { type ClassValue, clsx } from 'clsx';\nimport { twMerge } from 'tailwind-merge';\nimport { formatRelative } from 'date-fns';\nimport { IUser } from '@/redux/auth/auth';\nimport { ICarouselPage } from '@/interfaces/types';\n\nexport function cn(...inputs: ClassValue[]) {\n return twMerge(clsx(inputs));\n}\n\nexport function objectToFormData(values: Record): FormData {\n const formData = new FormData();\n\n Object.entries(values).forEach(([key, value]) => {\n if (value && value instanceof File) {\n formData.append(key, value);\n } else if (\n Array.isArray(value) &&\n value.every((item) => item instanceof File)\n ) {\n value.forEach((file: File) => {\n formData.append(key, file);\n });\n } else if (Array.isArray(value)) {\n // Check if the value is an array of objects and stringify them\n value.forEach((item: any) => {\n // If item is an object, stringify it, otherwise just append the item\n formData.append(\n key,\n typeof item === 'object' ? JSON.stringify(item) : item\n );\n });\n } else {\n formData.append(\n key,\n typeof value === 'object' ? JSON.stringify(value) : value\n );\n }\n });\n\n return formData;\n}\n\nexport function getRelativeTime(date: Date | string) {\n const currentDate = new Date();\n\n return formatRelative(new Date(date), currentDate);\n}\n\nexport function getUserFullName(user: IUser | undefined) {\n if (!user) return '';\n\n return `${user.firstname} ${user.lastname}`;\n}\n\nexport function appendParam(\n searchParams: URLSearchParams,\n key: string,\n value: string\n): URLSearchParams {\n const newParams = new URLSearchParams(searchParams);\n newParams.append(key, value);\n return newParams;\n}\n\nexport function removeParam(\n searchParams: URLSearchParams,\n key: string,\n value?: string\n): URLSearchParams {\n const newParams = new URLSearchParams(searchParams);\n\n if (value !== undefined) {\n const values = newParams.getAll(key);\n newParams.delete(key);\n values.forEach((val) => {\n if (val !== value) {\n newParams.append(key, val);\n }\n });\n } else {\n newParams.delete(key);\n }\n\n return newParams;\n}\n\nexport function formatTimestamp(timestamp: string): string {\n const date = new Date(timestamp);\n const currentDate = new Date();\n\n const options: Intl.DateTimeFormatOptions = {\n month: 'short',\n day: '2-digit',\n };\n const formattedDate = date.toLocaleDateString('en-US', options);\n\n if (date.getFullYear() === currentDate.getFullYear()) {\n return formattedDate;\n }\n return `${date.getFullYear().toString().slice(-2)} ${formattedDate}`;\n}\n\nexport async function validateStep(\n currentStep: number,\n pages: ICarouselPage[],\n formData: T,\n setErrors: Dispatch<{ [key: string]: string }>\n) {\n const currentPage = pages[currentStep - 1];\n\n // Skip validation if no schema is defined\n if (!currentPage.schema) {\n return { success: true };\n }\n\n const result = await currentPage.schema.safeParseAsync(formData);\n if (result.success) {\n return { success: true };\n }\n\n const newErrors: { [key: string]: string } = {};\n result.error.errors.forEach((err: any) => {\n newErrors[err.path[0]] = err.message;\n });\n setErrors(newErrors);\n return { success: false, errors: newErrors };\n}\n\nexport const getOptionsFromList = (list: string[]) => {\n return list.map((option) => ({\n label: option,\n value: option,\n }));\n};\n\nexport function debounce any>(\n func: T,\n wait: number\n): (...args: Parameters) => void {\n // eslint-disable-next-line no-undef\n let timeout: NodeJS.Timeout | null = null;\n return (...args: Parameters) => {\n if (timeout) clearTimeout(timeout);\n timeout = setTimeout(() => func(...args), wait);\n };\n}\n","import * as React from 'react';\nimport * as TooltipPrimitive from '@radix-ui/react-tooltip';\n\nimport { cn } from '@/lib/utils';\n\nconst TooltipProvider = TooltipPrimitive.Provider;\n\nconst Tooltip = TooltipPrimitive.Root;\n\nconst TooltipTrigger = TooltipPrimitive.Trigger;\n\nconst TooltipContent = React.forwardRef<\n React.ElementRef,\n React.ComponentPropsWithoutRef\n>(({ className, sideOffset = 4, ...props }, ref) => (\n \n));\nTooltipContent.displayName = TooltipPrimitive.Content.displayName;\n\nexport { Tooltip, TooltipTrigger, TooltipContent, TooltipProvider };\n","import * as React from 'react';\nimport { Slot } from '@radix-ui/react-slot';\nimport { cva, type VariantProps } from 'class-variance-authority';\n\nimport { cn } from '@/lib/utils';\nimport {\n Tooltip,\n TooltipContent,\n TooltipProvider,\n TooltipTrigger,\n} from '@/components/ui/tooltip';\n\nconst buttonVariants = cva(\n 'inline-flex items-center justify-center whitespace-nowrap rounded-full text-sm font-medium ring-offset-background transition-colors focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-ring focus-visible:ring-offset-2 disabled:pointer-events-none disabled:opacity-50',\n {\n variants: {\n variant: {\n default: 'bg-primary text-primary-foreground hover:bg-primary/90',\n destructive:\n 'bg-destructive text-destructive-foreground hover:bg-destructive/90',\n outline:\n 'border border-input bg-background hover:bg-accent hover:text-accent-foreground',\n secondary:\n 'bg-secondary text-secondary-foreground hover:bg-secondary/80',\n ghost: 'hover:bg-accent hover:text-accent-foreground',\n link: 'text-primary underline-offset-4 hover:underline',\n gradient:\n 'bg-[conic-gradient(from_90.97deg_at_50.88%_58.33%,#BFBEB9_-47.41deg,#92CAD9_44.9deg,#FFFF00_105.82deg,#F8865C_179.48deg,#B96185_250.75deg,#BFBEB9_312.59deg,#92CAD9_404.9deg)] text-transparent bg-clip-text',\n toolbarActive:\n 'bg-primary text-primary-foreground hover:bg-primary/90 rounded-sm',\n },\n size: {\n default: 'h-10 px-4 py-2',\n sm: 'h-9 rounded-full px-3',\n md: 'h-10 rounded-full px-6 text-md',\n lg: 'h-11 rounded-full px-8',\n icon: 'h-10 w-10',\n },\n },\n defaultVariants: {\n variant: 'default',\n size: 'default',\n },\n }\n);\n\nexport interface ButtonProps\n extends React.ButtonHTMLAttributes,\n VariantProps {\n asChild?: boolean;\n tooltip?: string;\n}\n\nconst Button = React.forwardRef(\n ({ className, variant, size, asChild = false, tooltip, ...props }, ref) => {\n const Comp = asChild ? Slot : 'button';\n const buttonElement = (\n \n );\n\n if (tooltip) {\n return (\n \n \n {buttonElement}\n \n

{tooltip}

\n
\n
\n
\n );\n }\n\n return buttonElement;\n }\n);\nButton.displayName = 'Button';\n\nexport { Button, buttonVariants };\n","/* eslint-disable no-param-reassign */\nimport { createSlice, PayloadAction } from '@reduxjs/toolkit';\nimport { IUser, UserState } from './auth';\n\nconst initialState: UserState = {\n isAuthenticated: false,\n isVerified: false,\n user: null,\n isLoading: true,\n};\n\nconst authSlice = createSlice({\n name: 'auth',\n initialState,\n reducers: {\n setCredentials: (state, action: PayloadAction) => {\n state.user = action.payload;\n state.isAuthenticated = true;\n state.isVerified = action.payload.isVerified;\n state.isLoading = false;\n },\n setLogout: (state) => {\n state.user = null;\n state.isAuthenticated = false;\n state.isVerified = false;\n state.isLoading = true;\n },\n setUserDataLoading: (state, action: PayloadAction) => {\n state.isLoading = action.payload;\n },\n },\n});\n\nexport const { setCredentials, setLogout, setUserDataLoading } =\n authSlice.actions;\n\nexport default authSlice.reducer;\n\nexport const selectCurrentUser = (state: { auth: UserState }) => state.auth;\n\nexport const selectUserId = (state: { auth: UserState }): string => {\n if (state.auth.isAuthenticated && state.auth.user) {\n return state.auth.user._id;\n }\n return '';\n};\n","import {\n FetchArgs,\n createApi,\n fetchBaseQuery,\n FetchBaseQueryError,\n BaseQueryFn,\n} from '@reduxjs/toolkit/query/react';\n// eslint-disable-next-line import/no-cycle\nimport { RootState } from '../store';\nimport { setCredentials, setLogout } from '../auth/auth.slice';\n\nconst BACKEND_URL = import.meta.env.VITE_BACKEND_URL;\n// move to env\n\nconst baseQuery = fetchBaseQuery({\n baseUrl: BACKEND_URL,\n credentials: 'include',\n});\n\nconst refreshTokenQuery: BaseQueryFn<\n string | FetchArgs,\n unknown,\n FetchBaseQueryError\n> = async (args, api, extraOptions) => {\n let result = await baseQuery(args, api, extraOptions);\n\n if (result?.error) {\n if (result?.error.status === 403) {\n const refreshTokenResponse = await baseQuery(\n '/api/v1/auth/refresh',\n api,\n extraOptions\n );\n\n if (refreshTokenResponse?.data) {\n const { user } = (api.getState() as RootState).auth;\n if (user) {\n api.dispatch(setCredentials(user));\n }\n result = await baseQuery(args, api, extraOptions);\n } else {\n api.dispatch(setLogout());\n }\n }\n }\n\n return result;\n};\n\nconst apiSlice = createApi({\n baseQuery: refreshTokenQuery,\n /* eslint-disable @typescript-eslint/no-unused-vars */\n // eslint-disable-next-line no-unused-vars\n endpoints: (_builder) => ({}),\n tagTypes: ['auth'],\n});\n\nexport default apiSlice;\n","import apiSlice from '../api/api.slice';\nimport {\n IIPostWithUserAndAttachmentsRequestParams,\n IPost,\n IPostAttachment,\n IPostAutoComplete,\n IPostDataUploadRequest,\n IPostDetailResponse,\n IPostDraft,\n IPostWithUserAndAttachments,\n} from './post';\n\nexport const postApiSlice = apiSlice.injectEndpoints({\n endpoints: (builder) => ({\n getPosts: builder.query<\n IPostWithUserAndAttachments[],\n IIPostWithUserAndAttachmentsRequestParams\n >({\n query: (params) => ({\n url: '/api/v1/post',\n method: 'GET',\n params,\n }),\n transformResponse: (response: { posts: IPostWithUserAndAttachments[] }) =>\n response.posts,\n }),\n getPostById: builder.query({\n query: (id) => ({\n url: `/api/v1/post/${id}`,\n method: 'GET',\n }),\n transformResponse: (response: { post: IPostDetailResponse }) =>\n response.post,\n }),\n getSearchAutoComplete: builder.query<\n IPostAutoComplete[],\n { searchQuery: string }\n >({\n query: (params) => ({\n url: `/api/v1/post/search/autoComplete`,\n method: 'GET',\n params,\n }),\n transformResponse: (response: { posts: IPostAutoComplete[] }) =>\n response.posts,\n }),\n getPostByIdAndApiKey: builder.query<\n IPostDetailResponse,\n { postId: string; apiKey: string }\n >({\n query: ({ postId, apiKey }) => ({\n url: `/api/v1/post/preview/postDetails/?postId=${postId}`,\n method: 'GET',\n headers: {\n 'x-api-key': apiKey,\n },\n }),\n transformResponse: (response: { post: IPostDetailResponse }) =>\n response.post,\n }),\n getPostByUserId: builder.query({\n query: (id) => ({\n url: `/api/v1/post/getPostsByUserId/${id}`,\n method: 'GET',\n }),\n transformResponse: (response: { posts: IPostWithUserAndAttachments[] }) =>\n response.posts,\n }),\n createPost: builder.mutation<\n {\n post: IPost;\n attachments: IPostAttachment[];\n },\n FormData\n >({\n query: (data) => ({\n url: '/api/v1/post/create',\n method: 'POST',\n body: data,\n }),\n transformResponse: (response: {\n post: {\n post: IPost;\n attachments: IPostAttachment[];\n };\n }) => response.post,\n }),\n createDraftPost: builder.mutation({\n query: (body) => ({\n url: '/api/v1/post/createPost',\n method: 'POST',\n body,\n }),\n transformResponse: (response: {\n post: IPostDraft;\n attachments: IPostAttachment;\n }) => response.post,\n }),\n updatePostData: builder.mutation<\n Partial,\n { postId: string; data: IPostDataUploadRequest }\n >({\n query: ({ postId, data }) => ({\n url: `/api/v1/post/updatePost/${postId}`,\n method: 'PATCH',\n body: data,\n }),\n transformResponse: (response: { post: Partial }) => response.post,\n }),\n updatePostAttachment: builder.mutation<\n IPostAttachment[],\n { postId: string; currentPage: number; data: FormData }\n >({\n query: ({ postId, currentPage, data }) => ({\n url: `/api/v1/post/updateAttachments/${postId}`,\n method: 'PUT',\n body: data,\n params: {\n currentPage,\n },\n }),\n transformResponse: (response: { attachments: IPostAttachment[] }) =>\n response.attachments,\n }),\n deletePostDelete: builder.mutation({\n query: (postId) => ({\n url: `/api/v1/post/delete/${postId}`,\n method: 'DELETE',\n }),\n }),\n }),\n});\n\napiSlice.enhanceEndpoints({\n addTagTypes: ['Post', 'UserPosts'],\n endpoints: {\n getPosts: {\n providesTags: ['Post'],\n },\n getPostById: {\n providesTags: ['Post'],\n },\n getPostByUserId: {\n providesTags: ['UserPosts'],\n },\n createPost: {\n invalidatesTags: ['Post', 'UserPosts'],\n },\n deletePostDelete: {\n invalidatesTags: ['Post', 'UserPosts'],\n },\n updatePostAttachment: {\n invalidatesTags: ['Post', 'UserPosts'],\n },\n updatePostData: {\n invalidatesTags: ['Post', 'UserPosts'],\n },\n createDraftPost: {\n invalidatesTags: ['Post', 'UserPosts'],\n },\n },\n});\n\nexport const {\n useCreatePostMutation,\n useGetPostsQuery,\n useLazyGetPostsQuery,\n useGetPostByIdQuery,\n useGetPostByUserIdQuery,\n useGetPostByIdAndApiKeyQuery,\n useUpdatePostAttachmentMutation,\n useUpdatePostDataMutation,\n useCreateDraftPostMutation,\n useLazyGetPostByIdQuery,\n useDeletePostDeleteMutation,\n useLazyGetSearchAutoCompleteQuery,\n} = postApiSlice;\n","import * as React from 'react';\nimport * as AvatarPrimitive from '@radix-ui/react-avatar';\n\nimport { cn } from '@/lib/utils';\n\nconst Avatar = React.forwardRef<\n React.ElementRef,\n React.ComponentPropsWithoutRef\n>(({ className, ...props }, ref) => (\n \n));\nAvatar.displayName = AvatarPrimitive.Root.displayName;\n\nconst AvatarImage = React.forwardRef<\n React.ElementRef,\n React.ComponentPropsWithoutRef\n>(({ className, ...props }, ref) => (\n \n));\nAvatarImage.displayName = AvatarPrimitive.Image.displayName;\n\nconst AvatarFallback = React.forwardRef<\n React.ElementRef,\n React.ComponentPropsWithoutRef\n>(({ className, ...props }, ref) => (\n \n));\nAvatarFallback.displayName = AvatarPrimitive.Fallback.displayName;\n\nexport { Avatar, AvatarImage, AvatarFallback };\n","import React, { forwardRef } from 'react';\nimport { cn } from '@/lib/utils';\nimport { Avatar, AvatarFallback, AvatarImage } from '@/components/ui/avatar';\n\ninterface ProfilePictureProps extends React.HTMLAttributes {\n src?: string;\n alt?: string;\n className?: string;\n}\n\nconst ProfilePicture = forwardRef(\n ({ className, src, alt = 'U', ...props }, ref) => {\n return (\n \n \n \n {alt.charAt(0)}\n \n \n );\n }\n);\n\nProfilePicture.displayName = 'ProfilePicture';\n\nexport default ProfilePicture;\n","import apiSlice from '../api/api.slice';\n\nexport const likeApiSlice = apiSlice.injectEndpoints({\n endpoints: (builder) => ({\n likePost: builder.mutation({\n query: (postId) => ({\n url: `/api/v1/like/create`,\n method: 'POST',\n body: {\n postId,\n },\n }),\n }),\n unlikePost: builder.mutation({\n query: (postId) => ({\n url: `/api/v1/like/delete?postId=${postId}`,\n method: 'DELETE',\n }),\n }),\n }),\n});\n\napiSlice.enhanceEndpoints({\n addTagTypes: ['Like'],\n endpoints: {\n likePost: {\n invalidatesTags: ['Post'],\n },\n unlikePost: {\n invalidatesTags: ['Post'],\n },\n },\n});\n\nexport const { useLikePostMutation, useUnlikePostMutation } = likeApiSlice;\n","/* eslint-disable no-param-reassign */\nimport { createSlice, PayloadAction } from '@reduxjs/toolkit';\nimport { IGlobalState } from './global';\n\nconst initialState: IGlobalState = {\n showLoginDialog: false,\n showSignupDialog: false,\n showForgetPasswordDialog: false,\n};\n\nconst globalSlice = createSlice({\n name: 'global',\n initialState,\n reducers: {\n setShowLoginDialog: (state, action: PayloadAction) => {\n state.showLoginDialog = action.payload;\n },\n setShowSignupDialog: (state, action: PayloadAction) => {\n state.showSignupDialog = action.payload;\n },\n setShowForgetPasswordDialog: (state, action: PayloadAction) => {\n state.showForgetPasswordDialog = action.payload;\n },\n },\n});\n\nexport const {\n setShowLoginDialog,\n setShowSignupDialog,\n setShowForgetPasswordDialog,\n} = globalSlice.actions;\n\nexport default globalSlice.reducer;\n\nexport const selectShowLoginDialog = (state: IGlobalState) =>\n state.showLoginDialog;\nexport const selectShowSignupDialog = (state: IGlobalState) =>\n state.showSignupDialog;\nexport const selectShowForgetPasswordDialog = (state: IGlobalState) =>\n state.showForgetPasswordDialog;\n","import { MouseEvent } from 'react';\nimport { useDispatch } from 'react-redux';\nimport { FcLike } from 'react-icons/fc';\nimport { Button } from '@/components/ui/button';\nimport { useLikePostMutation, useUnlikePostMutation } from './like.api.slice';\nimport { setShowLoginDialog } from '../global/global.slice';\n\nfunction LikeButton({\n liked,\n likes,\n postId,\n size = 'sm',\n}: {\n liked: boolean | undefined;\n likes: number;\n postId: string;\n size?: 'sm' | 'md' | 'lg';\n}) {\n const dispatch = useDispatch();\n const [like] = useLikePostMutation();\n const [unlike] = useUnlikePostMutation();\n const handleDislike = async (e: MouseEvent) => {\n e.stopPropagation();\n e.preventDefault();\n await unlike(postId);\n };\n const handleLike = async (e: MouseEvent) => {\n e.stopPropagation();\n e.preventDefault();\n if (!liked) {\n dispatch(setShowLoginDialog(true));\n }\n await like(postId);\n };\n\n if (liked) {\n return (\n \n \n Liked\n

{likes}

\n \n );\n }\n\n return (\n \n \n Like\n

{likes}

\n \n );\n}\n\nexport default LikeButton;\n","import { cn } from '@/lib/utils';\n\nfunction Skeleton({\n className,\n ...props\n}: React.HTMLAttributes) {\n return (\n \n );\n}\n\nexport { Skeleton };\n","export default \"data:image/png;base64,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\"","import apiSlice from '../api/api.slice';\n\nexport const attachmentApiSlice = apiSlice.injectEndpoints({\n endpoints: (builder) => ({\n getPreSignedUrl: builder.query({\n query: (params) => ({\n url: '/api/v1/attachment/getPreSignedUrl',\n method: 'GET',\n params,\n }),\n transformResponse: (response: { status: string; signedURL: string }) =>\n response.signedURL,\n }),\n }),\n});\n\nexport const { useGetPreSignedUrlQuery, useLazyGetPreSignedUrlQuery } =\n attachmentApiSlice;\n","import { useState, useCallback } from 'react';\nimport { useLazyGetPreSignedUrlQuery } from '@/redux/attachment/attachment.api.slice';\n\nexport async function getPublicFileFromS3(url: string): Promise {\n try {\n const response = await fetch(url, {\n cache: 'no-cache',\n });\n\n if (!response.ok) {\n throw new Error('Failed to fetch file');\n }\n return response;\n } catch (error) {\n throw new Error('Failed to fetch file');\n }\n}\n\nexport async function downloadFileFromS3(\n url: string,\n fileName: string\n): Promise {\n try {\n const response = await getPublicFileFromS3(url);\n const blob = await response.blob();\n const link = document.createElement('a');\n const blobUrl = URL.createObjectURL(blob);\n\n link.href = blobUrl;\n link.download = fileName;\n\n document.body.appendChild(link);\n link.click();\n document.body.removeChild(link);\n } catch (error) {\n throw new Error('Failed to download file');\n }\n}\n\nexport const useFileDownloader = () => {\n const [fetchPreSignedUrl] = useLazyGetPreSignedUrlQuery();\n const [loading, setLoading] = useState(false);\n const [error, setError] = useState(null);\n\n const downloadFile = useCallback(\n async (resourcePath: string, fileName: string) => {\n setLoading(true);\n setError(null);\n try {\n const preSignedUrl = await fetchPreSignedUrl({\n resourcePath,\n }).unwrap();\n if (!preSignedUrl) {\n throw new Error('Failed to fetch pre-signed URL');\n }\n const response = await fetch(preSignedUrl, {\n cache: 'no-cache',\n });\n\n if (!response.ok) {\n throw new Error(\n `Failed to fetch file: ${response.status} ${response.statusText}`\n );\n }\n\n const blob = await response.blob();\n const link = document.createElement('a');\n const blobUrl = URL.createObjectURL(blob);\n\n link.href = blobUrl;\n link.download = fileName;\n\n document.body.appendChild(link);\n link.click();\n document.body.removeChild(link);\n URL.revokeObjectURL(blobUrl);\n } catch (err: any) {\n setError(err);\n } finally {\n setLoading(false);\n }\n },\n [fetchPreSignedUrl]\n );\n\n return { downloadFile, loading, error };\n};\n","import { IUser } from '../auth/auth';\n\nexport enum IPostAttachmentTypes {\n IMAGE = 'image',\n MODEL = 'model',\n YOUTUBE = 'youtube',\n ZIP = 'zip',\n}\n\nexport enum IAttachmentCategory {\n postMedia = 'postMedia',\n postModel = 'postModel',\n postThumbnail = 'postThumbnail',\n postZip = 'postZip',\n}\n\nexport interface IPostAttachment {\n _id: string;\n user: string;\n parentId: string;\n parentType: string;\n resourcePath: string;\n resourceType: IPostAttachmentTypes;\n category: IAttachmentCategory;\n fileName: string;\n fileSize: number;\n url: string;\n downloadCount: number;\n createdAt: string;\n}\n\nexport interface IPostCategory {\n _id: string;\n name: string;\n type: string;\n createdAt: string;\n}\n\nexport interface IPostSubCategory {\n _id: string;\n name: string;\n createdAt: string;\n}\n\nexport type IPostTag = {\n _id: string;\n name: string;\n type: string;\n createdBy: string;\n createdAt: string;\n};\n\nexport enum IPostVisibility {\n PUBLIC = 'public',\n PRIVATE = 'private',\n UNLISTED = 'unlisted',\n DRAFT = 'draft',\n}\n\nexport enum IBuiltWith {\n ONEFINITY = 'Onefinity CNC',\n OTHERS = 'Others',\n}\n\nexport enum IOnefinityModel {\n ELITE_SERIES = 'Onefinity Elite Series',\n PRO_SERIES = 'Onefinity Pro Series',\n ORIGINAL_SERIES = 'Onefinity Original Series',\n}\n\nexport enum IOnefinityController {\n MASSO = 'Masso',\n BB = 'Build Botics',\n}\n\nexport enum IOnefinitySize {\n FOREMAN_48X48 = 'Foreman 48x48',\n JOURNEYMAN_48X32 = 'Journeyman 48x32',\n WOODWORKER_32X32 = 'Woodworker 32x32',\n MACHINIST_16X16 = 'Machinist 16x16',\n}\n\nexport enum ISoftwareUsed {\n CARVECO = 'Carveco',\n VECTRIC = 'Vectric',\n FUSION_360 = 'Fusion 360',\n CARBIDE_CREATE = 'Carbide Create',\n EASEL = 'Easel',\n SOLIDWORKS = 'Solidworks',\n MESHCAM = 'MeshCam',\n EZ_CAD = 'EZ Cad',\n FREECAM = 'FreeCAM',\n ESTLCAM = 'Estlcam',\n OTHER = 'Other',\n}\n\nexport enum IWood {\n WOOD_SOFT = 'Wood (soft)',\n WOOD_HARD = 'Wood (hard)',\n}\nexport enum IMetals {\n ALUMINUM = 'Aluminum',\n BRASS = 'Brass',\n COPPER = 'Copper',\n}\nexport enum IMDF {\n PLASTIC = 'Plastic',\n ACRYLIC = 'Acrylic',\n FOAM = 'Foam',\n}\nexport enum IEVA {\n LEATHER = 'Leather',\n GLASS = 'Glass',\n}\n\nexport enum IMaterialUsed {\n WOOD = IWood,\n METALS = IMetals,\n MDF = IMDF,\n EVA = IEVA,\n}\n\nexport enum IJobType {\n SINGLE_SIDED = 'Single Sided',\n DOUBLE_SIDED = 'Double Sided',\n ROTARY = 'Rotary',\n}\n\nexport enum IUnits {\n INCHES = 'Inches',\n MM = 'MM',\n}\n\nexport enum IZZeroPosition {\n MATERIAL_SURFACE = 'Material Surface',\n MACHINE_BED = 'Machine Bed',\n}\n\nexport enum IXYDatumPosition {\n LOWER_LEFT = 'Lower Left',\n CENTER = 'Center',\n UPPER_LEFT = 'Upper Left',\n LOWER_RIGHT = 'Lower Right',\n UPPER_RIGHT = 'Upper Right',\n}\n\nexport enum ILaserOrEndmill {\n ENDMILL = 'Endmill',\n LASER = 'Laser',\n}\n\nexport enum IBitType {\n UPCUT_ENDMILL = 'Upcut Endmill',\n DOWNCUT_ENDMILL = 'Downcut Endmill',\n V_BIT = 'V Bit',\n TAPERED_BALL_NOSE = 'Tapered Ball Nose',\n BALL_NOSE = 'Ball Nose',\n SURFACING = 'Surfacing',\n BOWL = 'Bowl',\n DRAG_BIT = 'Drag Bit',\n OGEE_ROUNDOVER = 'Ogee / Roundover',\n DRILL_MILL = 'Drill Mill',\n DOVETAIL = 'Dovetail',\n}\n\nexport enum IBitUsedUnit {\n INCHES = 'Inches',\n MM = 'MM',\n}\n\nexport enum IToolSetter {\n ENABLED = 'Enabled',\n DISABLE = 'Disable',\n}\n\nexport enum IProbeForZHeightCommand {\n NO = 'No',\n YES = 'Yes',\n}\n\nexport type IToolData = {\n modelId: string;\n toolUsed: number;\n toolUnit: IBitUsedUnit;\n toolType: IBitType;\n _id: string;\n};\n\nexport type IJobSize = {\n width: number;\n height: number;\n thickness: number;\n};\n\nexport interface IModel {\n id: string;\n modelURL: string;\n modelFile: File;\n}\n\nexport type IPost = {\n _id: string;\n title: string;\n description: string;\n user: string;\n category: IPostCategory;\n models: IModel[];\n subCategory: IPostSubCategory | string;\n tags: IPostTag[] | [];\n visibility: IPostVisibility;\n onefinityModel: IOnefinityModel;\n onefinityController: IOnefinityController;\n onefinitySize: IOnefinitySize;\n\n softwareUsed: ISoftwareUsed;\n materialUsed: IMaterialUsed;\n\n jobType: IJobType;\n jobSize: {\n width: number;\n height: number;\n thickness: number;\n };\n units: IUnits;\n zZeroPosition: IZZeroPosition;\n xyDatumPosition: IXYDatumPosition;\n laserOrEndmill: ILaserOrEndmill;\n\n toolData: IToolData[];\n\n toolSetter: IToolSetter;\n probeForZHeightCommand: IProbeForZHeightCommand;\n spindleSpeed: number;\n createdAt: string;\n likes: number;\n comments: number;\n hasLikedByUser?: boolean;\n};\n\nexport interface IPostWithAttachments extends IPost {\n attachments: IPostAttachment[];\n}\n\nexport interface IPostWithUser extends IPost {\n user: IUser;\n}\n\nexport interface IPostWithUserAndAttachments extends IPost {\n user: IUser;\n attachments: IPostAttachment[];\n}\n\nexport interface IIPostWithUserAndAttachmentsRequestParams {\n category?: string;\n subCategory?: string;\n postedAt?: string;\n author?: string;\n page?: number;\n limit?: number;\n searchQuery?: string;\n}\n\nexport type EnumType = Record;\nexport type GroupedEnum = Record;\n\nexport interface IOption {\n value: string;\n label: string;\n}\n\nexport interface IGroupedOption {\n label: string;\n options: Option[];\n}\n\nexport interface IPostDraft {\n user: string;\n tags: string[];\n category: string;\n title: string;\n description: string;\n thumbnail: File | null | string | IPostAttachment;\n visibility: IPostVisibility;\n builtWith: IBuiltWith | '';\n _id: string;\n}\n\nexport type IPostDetailResponse = {\n _id: string;\n title: string;\n description: string;\n user: IUser;\n category: IPostCategory;\n tags: IPostTag[];\n visibility: string;\n onefinityModel: string;\n onefinityController: string;\n onefinitySize: string;\n softwareUsed: string;\n materialUsed: string;\n jobType: string;\n jobSize: IJobSize;\n units: string;\n zZeroPosition: string;\n xyDatumPosition: string;\n laserOrEndmill: string;\n toolSetter: string;\n probeForZHeightCommand: string;\n spindleSpeed: number;\n createdAt: string;\n toolData: IToolData[];\n likes: number;\n hasLikedByUser: boolean;\n comments: number;\n currentPage: number;\n builtWith: IBuiltWith;\n attachments: IPostAttachment[];\n};\n\nexport type IPostUploadData = {\n title: string;\n description: string;\n category: string;\n tags: string[];\n onefinityModel: IOnefinityModel | '';\n onefinityController: IOnefinityController | '';\n onefinitySize: IOnefinitySize | '';\n softwareUsed: ISoftwareUsed;\n materialUsed: IMaterialUsed;\n jobType: IJobType;\n units: IUnits;\n jobSizeHeight: number;\n jobSizeThickness: number;\n jobSizeWidth: number;\n zZeroPosition: IZZeroPosition;\n xyDatumPosition: IXYDatumPosition;\n laserOrEndmill: ILaserOrEndmill;\n toolData: IToolData[];\n toolSetter: IToolSetter;\n probeForZHeightCommand: IProbeForZHeightCommand;\n spindleSpeed: number;\n models: IModel[];\n mediaFiles: File[];\n youtubeAttachments: string[];\n thumbnail: (File | null) | (IPostAttachment | undefined);\n builtWith: IBuiltWith | '';\n};\n\nexport type IPostAttachmentUploadRequest = {\n thumbnail?: File;\n modelFiles?: File[];\n mediaFiles?: File[];\n};\n\nexport type IPostDataUploadRequest = {\n title: string;\n description: string;\n category: string;\n tags: string[];\n onefinityModel: string;\n onefinityController: string;\n onefinitySize: string;\n softwareUsed: string;\n materialUsed: string;\n jobType: string;\n jobSizeHeight: number;\n jobSizeThickness: number;\n jobSizeWidth: number;\n units: string;\n zZeroPosition: string;\n xyDatumPosition: string;\n laserOrEndmill: string;\n toolSetter: string;\n probeForZHeightCommand: string;\n spindleSpeed: number;\n toolData: IToolData[];\n currentPage: number;\n builtWith: IBuiltWith | '';\n // user: IUser;\n // visibility: string;\n\n // createdAt: string;\n // toolData: IToolData[];\n // jobSize: IJobSize;\n // likes: number;\n // hasLikedByUser: boolean;\n // comments: number;\n // attachments: IPostAttachment[];\n};\n\nexport interface IPostAutoComplete {\n _id: string;\n title: string;\n}\n","import { getPublicFileFromS3 } from '@/lib/s3';\nimport * as Post from '@/redux/post/post.d';\n\nexport function filterAttachments(\n attachments: Post.IPostAttachment[] | undefined\n) {\n if (!attachments) return [];\n\n return attachments.filter((attachment) => {\n if (\n (attachment.resourceType === Post.IPostAttachmentTypes.ZIP &&\n attachment.category === Post.IAttachmentCategory.postZip) ||\n (attachment.resourceType === Post.IPostAttachmentTypes.YOUTUBE &&\n attachment.category === Post.IAttachmentCategory.postMedia)\n ) {\n return false;\n }\n return true;\n });\n}\n\nexport function filterAttachmentsForCarousel(\n attachments: Post.IPostAttachment[] | undefined\n) {\n if (!attachments) return [];\n\n return attachments.filter((attachment) => {\n if (\n attachment?.resourceType === Post.IPostAttachmentTypes.ZIP &&\n attachment?.category === Post.IAttachmentCategory.postZip\n ) {\n return false;\n }\n return true;\n });\n}\n\nexport const getGroupedOptionsFlat = (\n groupedEnum: Post.GroupedEnum\n): string[] => {\n const flatOptions: string[] = Object.entries(groupedEnum).flatMap(\n ([materialGroupKey, materialEnum]) => {\n const option: string[] = Object.entries(\n materialEnum as Post.EnumType\n ).map(\n // eslint-disable-next-line no-unused-vars, @typescript-eslint/no-unused-vars\n ([_, value]) => value\n );\n if (materialGroupKey === '[object Object]') {\n return [''];\n }\n return option;\n }\n );\n\n return flatOptions;\n};\n\nexport const getGroupedOptionsFromEnumAsGroups = (\n groupedEnum: Post.GroupedEnum\n): Post.IGroupedOption[] => {\n const groupedOptions: Post.IGroupedOption[] = Object.entries(groupedEnum).map(\n ([materialGroupKey, materialEnum]) => {\n const options: Post.IOption[] = Object.entries(\n materialEnum as Post.EnumType\n ).map(([key, value]) => ({\n value: key,\n label: value,\n }));\n if (materialGroupKey === '[object Object]')\n return { label: '', options: [] };\n\n return {\n label:\n materialGroupKey.charAt(0).toUpperCase() +\n materialGroupKey.slice(1).toLowerCase(),\n options,\n };\n }\n );\n\n return groupedOptions;\n};\n\nexport async function urlToFile(\n url: string,\n filename: string\n): Promise {\n if (typeof url !== 'string' || url.trim() === '') {\n throw new Error('The URL must be a valid string.');\n }\n\n if (typeof filename !== 'string' || filename.trim() === '') {\n throw new Error('The filename must be a valid string.');\n }\n\n try {\n const response = await getPublicFileFromS3(url);\n\n const contentType = response.headers.get('Content-Type');\n\n const blob = await response.blob();\n const type = contentType || 'application/octet-stream';\n return new File([blob], filename, { type });\n } catch (error) {\n return null;\n }\n}\n\nasync function getFilesByCategory(\n attachments: Post.IPostAttachment[],\n category: Post.IAttachmentCategory\n): Promise {\n const filteredAttachments = attachments.filter(\n (attachment) =>\n attachment.category === category &&\n attachment.resourceType !== Post.IPostAttachmentTypes.YOUTUBE\n );\n\n const files = await Promise.all(\n filteredAttachments.map((attachment) =>\n urlToFile(attachment.url, attachment.fileName)\n )\n );\n\n return files.filter((file) => file !== null);\n}\n\n/**\n * Converts the response from the backend to a PostUploadData\n */\nexport async function convertToPostUploadData(\n dto: Post.IPostDetailResponse\n): Promise {\n const thumbnailFile = await getFilesByCategory(\n dto.attachments,\n Post.IAttachmentCategory.postThumbnail\n );\n\n const mediaFiles = await getFilesByCategory(\n dto.attachments,\n Post.IAttachmentCategory.postMedia\n );\n\n const modelAttachments = dto.attachments.filter((attachment) => {\n if (\n attachment.category !== Post.IAttachmentCategory.postModel &&\n attachment.resourceType !== Post.IPostAttachmentTypes.MODEL\n )\n return false;\n\n return true;\n });\n\n const models = (\n await Promise.all(\n filterAttachments(modelAttachments).map(async (attachment) => {\n const modelFile = await urlToFile(attachment.url, attachment.fileName);\n if (!modelFile) return null;\n\n return {\n id: attachment._id,\n modelURL: attachment.url,\n modelFile,\n };\n })\n )\n ).filter((model) => model !== null);\n\n const youtubeAttachments = dto.attachments\n .filter((attachment) => {\n if (\n attachment.category === Post.IAttachmentCategory.postMedia &&\n attachment.resourceType === Post.IPostAttachmentTypes.YOUTUBE\n ) {\n return true;\n }\n\n return false;\n })\n .map((attachment) => attachment.url);\n\n return {\n title: dto.title,\n description: dto.description,\n category: dto.category?._id || '',\n tags: dto.tags.map((tag) => tag._id),\n onefinityModel: dto.onefinityModel as Post.IOnefinityModel,\n onefinityController: dto.onefinityController as Post.IOnefinityController,\n onefinitySize: dto.onefinitySize as Post.IOnefinitySize,\n softwareUsed: dto.softwareUsed as Post.ISoftwareUsed,\n materialUsed: dto.materialUsed as unknown as Post.IMaterialUsed,\n jobType: dto.jobType as Post.IJobType,\n units: dto.units as Post.IUnits,\n jobSizeHeight: dto.jobSize?.height || 0.1,\n jobSizeThickness: dto.jobSize?.thickness || 0.1,\n jobSizeWidth: dto.jobSize?.width || 0.1,\n zZeroPosition: dto.zZeroPosition as Post.IZZeroPosition,\n xyDatumPosition: dto.xyDatumPosition as Post.IXYDatumPosition,\n laserOrEndmill: dto.laserOrEndmill as Post.ILaserOrEndmill,\n toolData: dto.toolData,\n toolSetter: dto.toolSetter as Post.IToolSetter,\n probeForZHeightCommand:\n dto.probeForZHeightCommand as Post.IProbeForZHeightCommand,\n spindleSpeed: dto.spindleSpeed,\n models,\n mediaFiles,\n thumbnail: thumbnailFile[0] || null,\n youtubeAttachments,\n builtWith: dto.builtWith as Post.IBuiltWith,\n };\n}\n\n/**\n * Converts data for sending to the backend\n */\nexport function convertToPostDetailData(\n dto: Post.IPostUploadData\n): Post.IPostDataUploadRequest {\n const toolData = dto.toolData.map((tool) => {\n // eslint-disable-next-line @typescript-eslint/naming-convention\n const { _id, ...rest } = tool;\n return {\n ...rest,\n };\n });\n\n const result = {\n title: dto.title,\n description: dto.description,\n category: dto.category,\n tags: dto.tags,\n onefinityModel: dto.onefinityModel,\n onefinityController: dto.onefinityController,\n onefinitySize: dto.onefinitySize,\n softwareUsed: dto.softwareUsed,\n materialUsed: dto.materialUsed,\n jobType: dto.jobType,\n jobSize: {\n height: dto.jobSizeHeight,\n width: dto.jobSizeWidth,\n thickness: dto.jobSizeThickness,\n },\n laserOrEndmill: dto.laserOrEndmill,\n probeForZHeightCommand: dto.probeForZHeightCommand,\n spindleSpeed: dto.spindleSpeed,\n toolSetter: dto.toolSetter,\n units: dto.units,\n xyDatumPosition: dto.xyDatumPosition,\n zZeroPosition: dto.zZeroPosition,\n youtubeAttachments: dto.youtubeAttachments,\n toolData,\n builtWith: dto.builtWith,\n };\n\n return Object.fromEntries(\n Object.entries(result).filter(\n // eslint-disable-next-line @typescript-eslint/no-unused-vars, no-unused-vars\n ([_, value]) =>\n value !== undefined &&\n value !== null &&\n (typeof value !== 'string' || value.trim() !== '') &&\n !(Array.isArray(value) && value.length === 0)\n )\n ) as Post.IPostDataUploadRequest;\n}\n\nexport function convertToPostDetailAttachment(\n dto: Post.IPostUploadData\n): Post.IPostAttachmentUploadRequest {\n const data: Post.IPostAttachmentUploadRequest = {};\n\n if (dto.thumbnail instanceof File) {\n data.thumbnail = dto.thumbnail;\n }\n\n if (dto.models.length > 0) {\n data.modelFiles = dto.models.map((model) => model.modelFile);\n }\n\n if (dto.mediaFiles.length > 0) {\n data.mediaFiles = dto.mediaFiles;\n }\n\n return data;\n}\n","import { useCallback, useEffect, useState } from 'react';\nimport { Link } from 'react-router-dom';\nimport useEmblaCarousel from 'embla-carousel-react';\nimport { ChevronLeft, ChevronRight, Download } from 'lucide-react';\nimport { Button } from '@/components/ui/button';\nimport { useGetPostsQuery } from '@/redux/post/post.api.slice';\nimport ProfilePicture from '@/components/ui/profile-picture';\nimport LikeButton from '@/redux/like/LikeButton';\nimport { Skeleton } from '@/components/ui/skeleton';\nimport OnefinityOfficialIcon from '@/assets/onefinity_officials_badge.png';\nimport { IPostWithUserAndAttachments } from '@/redux/post/post';\nimport { filterAttachments } from '@/redux/post/post.utils';\n\nfunction FeaturedCarouselCard({ post }: { post: IPostWithUserAndAttachments }) {\n const filteredAttachments = filterAttachments(post.attachments);\n const totalAttachmentsDownloadCount = filteredAttachments.reduce(\n (count, attachment) => count + (attachment.downloadCount || 0),\n 0\n );\n const totalDownloadCount = Math.round(\n totalAttachmentsDownloadCount / filteredAttachments.length\n );\n return (\n \n
\n
\n
\n
\n
\n \n\n
\n
\n {post.user.firstname}\n
\n {post.user.isOnefinityOfficial ? (\n \n ) : (\n // eslint-disable-next-line react/jsx-no-useless-fragment\n <>\n )}\n
\n
\n
\n {post.title}\n
\n\n

\n {post.description}\n

\n
\n
\n \n \n
\n
\n attachment.resourceType === 'image'\n )[0]?.url\n }\n alt=\"avatar\"\n className=\"h-[240px] sm:h-[272px] w-full sm:w-[272px] object-contain\"\n />\n
\n
\n \n );\n}\n\nfunction FeaturedCarousel() {\n const { data: posts, isLoading } = useGetPostsQuery({\n page: 1,\n limit: 5,\n });\n const [emblaRef, emblaApi] = useEmblaCarousel({\n loop: true,\n align: 'center',\n slidesToScroll: 1,\n // breakpoints: {\n // '(min-width: 768px)': {\n // slidesToScroll: 1,\n // },\n // },\n });\n\n const [selectedIndex, setSelectedIndex] = useState(0);\n\n const scrollPrev = useCallback(() => {\n if (emblaApi) emblaApi.scrollPrev();\n }, [emblaApi]);\n\n const scrollNext = useCallback(() => {\n if (emblaApi) emblaApi.scrollNext();\n }, [emblaApi]);\n\n const onSelect = useCallback(() => {\n if (!emblaApi) return;\n setSelectedIndex(emblaApi.selectedScrollSnap());\n }, [emblaApi]);\n\n useEffect(() => {\n if (!emblaApi) return;\n onSelect();\n emblaApi.on('select', onSelect);\n emblaApi.on('reInit', onSelect);\n }, [emblaApi, onSelect]);\n\n if (posts?.length === 0 || isLoading) {\n return (\n
\n
\n
\n
\n {Array.from({ length: 3 }).map((_, index) => (\n \n \n
\n ))}\n
\n
\n
\n \n );\n }\n\n return (\n
\n
\n
\n
\n {posts?.map((post) => (\n \n ))}\n
\n
\n
\n\n
\n \n \n \n\n
\n {posts?.map((post, index) => {\n return (\n emblaApi?.scrollTo(index)}\n onKeyDown={(e) => {\n if (e.key === 'Enter' || e.key === ' ') {\n e.preventDefault();\n emblaApi?.scrollTo(index);\n }\n }}\n />\n );\n })}\n
\n\n \n \n \n
\n
\n );\n}\n\nexport default FeaturedCarousel;\n","import * as React from 'react';\n\nimport { cn } from '@/lib/utils';\n\nconst Card = React.forwardRef<\n HTMLDivElement,\n React.HTMLAttributes\n>(({ className, ...props }, ref) => (\n \n));\nCard.displayName = 'Card';\n\nconst CardHeader = React.forwardRef<\n HTMLDivElement,\n React.HTMLAttributes\n>(({ className, ...props }, ref) => (\n \n));\nCardHeader.displayName = 'CardHeader';\n\nconst CardTitle = React.forwardRef<\n HTMLParagraphElement,\n React.HTMLAttributes\n>(({ className, ...props }, ref) => (\n \n));\nCardTitle.displayName = 'CardTitle';\n\nconst CardDescription = React.forwardRef<\n HTMLParagraphElement,\n React.HTMLAttributes\n>(({ className, ...props }, ref) => (\n \n));\nCardDescription.displayName = 'CardDescription';\n\nconst CardContent = React.forwardRef<\n HTMLDivElement,\n React.HTMLAttributes\n>(({ className, ...props }, ref) => (\n
\n));\nCardContent.displayName = 'CardContent';\n\nconst CardFooter = React.forwardRef<\n HTMLDivElement,\n React.HTMLAttributes\n>(({ className, ...props }, ref) => (\n \n));\nCardFooter.displayName = 'CardFooter';\n\nexport {\n Card,\n CardHeader,\n CardFooter,\n CardTitle,\n CardDescription,\n CardContent,\n};\n","import * as React from 'react';\nimport * as DropdownMenuPrimitive from '@radix-ui/react-dropdown-menu';\nimport { Check, ChevronRight, Circle } from 'lucide-react';\n\nimport { cn } from '@/lib/utils';\n\nconst DropdownMenu = DropdownMenuPrimitive.Root;\n\nconst DropdownMenuTrigger = DropdownMenuPrimitive.Trigger;\n\nconst DropdownMenuGroup = DropdownMenuPrimitive.Group;\n\nconst DropdownMenuPortal = DropdownMenuPrimitive.Portal;\n\nconst DropdownMenuSub = DropdownMenuPrimitive.Sub;\n\nconst DropdownMenuRadioGroup = DropdownMenuPrimitive.RadioGroup;\n\nconst DropdownMenuSubTrigger = React.forwardRef<\n React.ElementRef,\n React.ComponentPropsWithoutRef & {\n inset?: boolean;\n }\n>(({ className, inset, children, ...props }, ref) => (\n \n {children}\n \n \n));\nDropdownMenuSubTrigger.displayName =\n DropdownMenuPrimitive.SubTrigger.displayName;\n\nconst DropdownMenuSubContent = React.forwardRef<\n React.ElementRef,\n React.ComponentPropsWithoutRef\n>(({ className, ...props }, ref) => (\n \n));\nDropdownMenuSubContent.displayName =\n DropdownMenuPrimitive.SubContent.displayName;\n\nconst DropdownMenuContent = React.forwardRef<\n React.ElementRef,\n React.ComponentPropsWithoutRef\n>(({ className, sideOffset = 4, ...props }, ref) => (\n \n \n \n));\nDropdownMenuContent.displayName = DropdownMenuPrimitive.Content.displayName;\n\nconst DropdownMenuItem = React.forwardRef<\n React.ElementRef,\n React.ComponentPropsWithoutRef & {\n inset?: boolean;\n }\n>(({ className, inset, ...props }, ref) => (\n \n));\nDropdownMenuItem.displayName = DropdownMenuPrimitive.Item.displayName;\n\nconst DropdownMenuCheckboxItem = React.forwardRef<\n React.ElementRef,\n React.ComponentPropsWithoutRef\n>(({ className, children, checked, ...props }, ref) => (\n \n \n \n \n \n \n {children}\n \n));\nDropdownMenuCheckboxItem.displayName =\n DropdownMenuPrimitive.CheckboxItem.displayName;\n\nconst DropdownMenuRadioItem = React.forwardRef<\n React.ElementRef,\n React.ComponentPropsWithoutRef\n>(({ className, children, ...props }, ref) => (\n \n \n \n \n \n \n {children}\n \n));\nDropdownMenuRadioItem.displayName = DropdownMenuPrimitive.RadioItem.displayName;\n\nconst DropdownMenuLabel = React.forwardRef<\n React.ElementRef,\n React.ComponentPropsWithoutRef & {\n inset?: boolean;\n }\n>(({ className, inset, ...props }, ref) => (\n \n));\nDropdownMenuLabel.displayName = DropdownMenuPrimitive.Label.displayName;\n\nconst DropdownMenuSeparator = React.forwardRef<\n React.ElementRef,\n React.ComponentPropsWithoutRef\n>(({ className, ...props }, ref) => (\n \n));\nDropdownMenuSeparator.displayName = DropdownMenuPrimitive.Separator.displayName;\n\nconst DropdownMenuShortcut = ({\n className,\n ...props\n}: React.HTMLAttributes) => {\n return (\n \n );\n};\nDropdownMenuShortcut.displayName = 'DropdownMenuShortcut';\n\nexport {\n DropdownMenu,\n DropdownMenuTrigger,\n DropdownMenuContent,\n DropdownMenuItem,\n DropdownMenuCheckboxItem,\n DropdownMenuRadioItem,\n DropdownMenuLabel,\n DropdownMenuSeparator,\n DropdownMenuShortcut,\n DropdownMenuGroup,\n DropdownMenuPortal,\n DropdownMenuSub,\n DropdownMenuSubContent,\n DropdownMenuSubTrigger,\n DropdownMenuRadioGroup,\n};\n","import * as React from 'react';\nimport { cva, type VariantProps } from 'class-variance-authority';\n\nimport { cn } from '@/lib/utils';\n\nconst badgeVariants = cva(\n 'inline-flex items-center rounded-full border px-2.5 py-0.5 text-xs font-semibold transition-colors focus:outline-none focus:ring-2 focus:ring-ring focus:ring-offset-2',\n {\n variants: {\n variant: {\n default:\n 'border-transparent bg-primary text-primary-foreground hover:bg-primary/80',\n secondary:\n 'border-transparent bg-secondary text-secondary-foreground hover:bg-secondary/80',\n destructive:\n 'border-transparent bg-destructive text-destructive-foreground hover:bg-destructive/80',\n outline: 'text-foreground',\n },\n },\n defaultVariants: {\n variant: 'default',\n },\n }\n);\n\nexport interface BadgeProps\n extends React.HTMLAttributes,\n VariantProps {}\n\nfunction Badge({ className, variant, ...props }: BadgeProps) {\n return (\n
\n );\n}\n\nexport { Badge, badgeVariants };\n","import { Eye, EyeOff, InfoIcon, Lock, PencilRuler } from 'lucide-react';\nimport { HTMLAttributes } from 'react';\nimport { cva, type VariantProps } from 'class-variance-authority';\nimport { Badge } from '@/components/ui/badge';\nimport { cn } from '@/lib/utils';\nimport {\n Tooltip,\n TooltipContent,\n TooltipProvider,\n TooltipTrigger,\n} from '../ui/tooltip';\n\nconst postStatusBadgeVariants = cva('p-2', {\n variants: {\n visibility: {\n private: 'bg-orange-500',\n public: 'bg-green-500',\n unlisted: 'bg-black',\n draft: 'bg-yellow-500',\n },\n },\n defaultVariants: {\n visibility: 'public',\n },\n});\n\ninterface PostStatusBadgeProps\n extends HTMLAttributes,\n VariantProps {\n visibility: 'private' | 'public' | 'unlisted' | 'draft';\n}\n\nfunction PostStatusIcon({\n visibility,\n size,\n}: {\n visibility: 'private' | 'public' | 'unlisted' | 'draft';\n size: string;\n}) {\n switch (visibility) {\n case 'public':\n return ;\n case 'private':\n return ;\n case 'draft':\n return ;\n case 'unlisted':\n return ;\n default:\n return ;\n }\n}\n\nfunction PostStatusBadge({\n className,\n visibility,\n ...props\n}: PostStatusBadgeProps) {\n return (\n \n \n \n \n \n \n \n \n {visibility} Project\n \n \n \n );\n}\n\nexport default PostStatusBadge;\n","import { toast } from 'sonner';\nimport { Download, EllipsisVertical } from 'lucide-react';\nimport { BiCommentDetail } from 'react-icons/bi';\nimport { Link, useNavigate } from 'react-router-dom';\nimport { Button } from '@/components/ui/button';\nimport { Card } from '@/components/ui/card';\nimport {\n IAttachmentCategory,\n IPostAttachment,\n IPostCategory,\n IPostVisibility,\n} from '@/redux/post/post.d';\nimport { getRelativeTime } from '@/lib/utils';\nimport ProfilePicture from '../ui/profile-picture';\nimport LikeButton from '@/redux/like/LikeButton';\nimport OnefinityOfficialIcon from '@/assets/onefinity_officials_badge.png';\nimport {\n DropdownMenu,\n DropdownMenuContent,\n DropdownMenuLabel,\n DropdownMenuItem,\n DropdownMenuTrigger,\n} from '@/components/ui/dropdown-menu';\nimport { useDeletePostDeleteMutation } from '@/redux/post/post.api.slice';\nimport PostStatusBadge from './PostStatusBadge';\n\ninterface IPostCardProps {\n id: string;\n authorName: string;\n authorAvatar: string;\n title: string;\n description: string;\n likesCount: number;\n commentsCount: number;\n attachments: IPostAttachment[];\n createdAt: string;\n category: IPostCategory;\n hasLikedByUser: boolean | undefined;\n isOnefinityOfficial: boolean;\n isOwner: boolean;\n visibility?: IPostVisibility;\n}\n\nfunction PostCard({\n id,\n authorName,\n authorAvatar,\n title,\n description,\n likesCount,\n commentsCount,\n attachments,\n createdAt,\n category,\n hasLikedByUser,\n isOnefinityOfficial,\n isOwner,\n visibility,\n}: IPostCardProps) {\n const navigate = useNavigate();\n\n const [deletePost] = useDeletePostDeleteMutation();\n const thumbnail = attachments.filter((attachment) => {\n if (attachment.category !== IAttachmentCategory.postThumbnail) return false;\n\n return true;\n });\n\n const handleDelete = async (postId: string) => {\n if (!postId) return;\n deletePost(postId);\n toast.success('Project deleted');\n };\n\n const handleEdit = (postId: string) => {\n navigate(`/project/edit/${postId}?page=1`);\n };\n\n const totalAttachmentsDownloadCount = attachments.reduce(\n (count, attachment) => count + (attachment.downloadCount || 0),\n 0\n );\n const totalDownloadCount = Math.round(\n totalAttachmentsDownloadCount / attachments.length\n );\n\n return (\n \n
\n
\n \n
\n
\n
{authorName}
\n {isOnefinityOfficial ? (\n \n ) : (\n // eslint-disable-next-line react/jsx-no-useless-fragment\n <>\n )}\n
\n

\n {getRelativeTime(createdAt)}\n

\n
\n
\n {isOwner ? (\n \n \n \n \n \n Actions\n handleEdit(id)}>\n Edit Project\n \n handleDelete(id)}\n className=\"focus:text-red-500 focus:bg-red-200\"\n >\n Delete Project\n \n \n \n ) : (\n // eslint-disable-next-line react/jsx-no-useless-fragment\n <>\n // \n )}\n
\n \n \n
\n
\n
\n
\n
\n {title}\n
\n {visibility ? (\n \n ) : (\n
\n )}\n
\n

\n {category?.name || ''}\n

\n
\n

\n {description}\n

\n
\n
\n \n\n
\n \n \n \n
\n \n );\n}\n\nexport default PostCard;\n","import { useSearchParams } from 'react-router-dom';\nimport { useCallback } from 'react';\n\ntype SearchParam = {\n key: string;\n value: string[];\n};\n\nconst useSearchParamActions = () => {\n const [searchParams, setSearchParams] = useSearchParams();\n\n const getSearchParams = useCallback((): SearchParam[] => {\n const params: SearchParam[] = [];\n searchParams.forEach((value, key) => {\n const existingParam = params.find((param) => param.key === key);\n if (existingParam) {\n existingParam.value.push(value);\n } else {\n params.push({ key, value: [value] });\n }\n });\n return params;\n }, [searchParams]);\n\n const appendSearchParam = useCallback(\n (key: string, value: string, replace: boolean = true) => {\n const newParams = new URLSearchParams(searchParams);\n\n if (replace) {\n newParams.set(key, value);\n } else {\n newParams.append(key, value);\n }\n\n setSearchParams(newParams);\n },\n [searchParams, setSearchParams]\n );\n\n const removeSearchParam = useCallback(\n (key: string, value?: string) => {\n const newParams = new URLSearchParams(searchParams);\n\n if (value !== undefined) {\n const values = newParams.getAll(key);\n newParams.delete(key);\n values.forEach((val) => {\n if (val !== value) {\n newParams.append(key, val);\n }\n });\n } else {\n newParams.delete(key);\n }\n\n setSearchParams(newParams);\n },\n [searchParams, setSearchParams]\n );\n\n const removeAllSearchParams = useCallback(\n (keys: string[]) => {\n const newParams = new URLSearchParams(searchParams);\n\n keys.forEach((key) => {\n newParams.delete(key);\n });\n\n setSearchParams(newParams);\n },\n [searchParams, setSearchParams]\n );\n\n const getSearchParam = useCallback(\n (key: string): string | undefined => {\n return searchParams.get(key) || undefined;\n },\n [searchParams]\n );\n\n const getAllSearchParams = useCallback(\n (): SearchParam[] => getSearchParams(),\n [getSearchParams]\n );\n\n return {\n appendSearchParam,\n removeSearchParam,\n removeAllSearchParams,\n getSearchParam,\n getAllSearchParams,\n searchParams,\n };\n};\n\nexport default useSearchParamActions;\n","// eslint-disable-next-line import/no-extraneous-dependencies\nimport InfiniteScroll from 'react-infinite-scroll-component';\nimport { useSelector } from 'react-redux';\nimport { useEffect, useState } from 'react';\nimport { Skeleton } from '@/components/ui/skeleton';\nimport PostCard from '@/components/Post/PostCard';\nimport { useGetPostsQuery } from './post.api.slice';\nimport useSearchParamActions from '@/customHooks/useSearchParamActions';\nimport { IPostWithUserAndAttachments } from './post.d';\nimport { selectCurrentUser } from '../auth/auth.slice';\n\nfunction FeaturedPostsList() {\n const [postsData, setPostsData] = useState([]);\n const [page, setPage] = useState(1);\n const { getSearchParam } = useSearchParamActions();\n const { user } = useSelector(selectCurrentUser);\n\n const category = getSearchParam('category');\n const subCategory = getSearchParam('subCategory');\n const postedAt = getSearchParam('postedAt');\n const author = getSearchParam('author');\n\n const { data: posts, isLoading } = useGetPostsQuery({\n category,\n subCategory,\n postedAt,\n author,\n page,\n });\n\n useEffect(() => {\n setPostsData([]);\n setPage(1);\n }, [category, subCategory, postedAt, author]);\n\n useEffect(() => {\n if (!isLoading && posts?.length) {\n if (page === 1) {\n setPostsData(posts);\n } else {\n setPostsData((prev) => {\n const newPosts = posts.filter(\n (post) => !prev.some((p) => p._id === post._id)\n );\n return [...prev, ...newPosts];\n });\n }\n }\n }, [posts, page, isLoading]);\n\n const fetchMoreData = () => {\n setPage((prev) => prev + 1);\n };\n\n return (\n \n {Array.from({ length: 20 }).map((_, index) => (\n \n ))}\n \n }\n className=\"flex flex-wrap sm:justify-between justify-center py-2 w-full gap-10 items-center\"\n >\n {postsData?.map((post) => (\n \n ))}\n \n );\n}\n\nexport default FeaturedPostsList;\n","import * as React from 'react';\nimport * as SeparatorPrimitive from '@radix-ui/react-separator';\n\nimport { cn } from '@/lib/utils';\n\nconst Separator = React.forwardRef<\n React.ElementRef,\n React.ComponentPropsWithoutRef\n>(\n (\n { className, orientation = 'horizontal', decorative = true, ...props },\n ref\n ) => (\n \n )\n);\nSeparator.displayName = SeparatorPrimitive.Root.displayName;\n\nexport { Separator };\n","import apiSlice from '../api/api.slice';\nimport { ICategory, IGetCategoriesParams } from './category';\n\nexport const category = apiSlice.injectEndpoints({\n endpoints: (builder) => ({\n getCategories: builder.query({\n query: (params) => ({\n url: '/api/v1/category/getCategories',\n method: 'GET',\n params,\n }),\n transformResponse: (response: { categories: ICategory[] }) =>\n response.categories,\n }),\n }),\n});\n\napiSlice.enhanceEndpoints({\n addTagTypes: ['category'],\n endpoints: {\n providesTags: ['category'],\n },\n});\n\nexport const { useGetCategoriesQuery } = category;\n","export interface ICategory {\n _id?: string;\n name: string;\n createdAt: Date;\n type: ICategoryType;\n}\n\nexport enum ICategoryType {\n POST = 'post',\n}\n\nexport interface IGetCategoriesParams {\n type?: ICategoryType;\n}\n","import { ChevronDown } from 'lucide-react';\nimport { Button } from '@/components/ui/button';\nimport {\n DropdownMenu,\n DropdownMenuContent,\n DropdownMenuItem,\n DropdownMenuTrigger,\n} from '@/components/ui/dropdown-menu';\nimport { useGetCategoriesQuery } from './category.api.slice';\nimport { ICategoryType } from './category.d';\nimport useSearchParamActions from '@/customHooks/useSearchParamActions';\n\nfunction CategoryFilter() {\n const { data: categories, isLoading: isLoadingPostCategories } =\n useGetCategoriesQuery({ type: ICategoryType.POST });\n const { removeSearchParam, appendSearchParam } = useSearchParamActions();\n\n return (\n \n \n \n \n \n {isLoadingPostCategories ? (\n
\n
\n
\n ) : (\n {\n removeSearchParam('category');\n }}\n >\n All\n \n )}\n {categories?.map((category) => (\n {\n appendSearchParam('category', category.name);\n }}\n >\n {category.name}\n \n ))}\n \n \n );\n}\n\nexport default CategoryFilter;\n","import { ChevronDown } from 'lucide-react';\nimport { Button } from '@/components/ui/button';\nimport {\n DropdownMenu,\n DropdownMenuContent,\n DropdownMenuItem,\n DropdownMenuTrigger,\n} from '@/components/ui/dropdown-menu';\n\nimport useSearchParamActions from '@/customHooks/useSearchParamActions';\n\nfunction PostsFilterByDate() {\n const { appendSearchParam, removeSearchParam } = useSearchParamActions();\n\n const dateFilters = ['Today', 'This Week', 'This Month', 'This Year'];\n return (\n \n \n \n \n \n {\n removeSearchParam('postedAt');\n }}\n >\n All\n \n {dateFilters.map((dateFilter) => (\n {\n appendSearchParam('postedAt', dateFilter);\n }}\n >\n {dateFilter}\n \n ))}\n \n \n );\n}\n\nexport default PostsFilterByDate;\n","import { X } from 'lucide-react';\nimport { Button } from '@/components/ui/button';\nimport { Separator } from '@/components/ui/separator';\nimport CategoryFilter from '@/redux/category/CategoryFilter';\n// import SubCategoryFilter from '@/redux/subCategory/SubCategoryFilter';\nimport useSearchParamActions from '@/customHooks/useSearchParamActions';\nimport PostsFilterByDate from '@/redux/post/PostsFilterByDate';\n\nfunction FilterBar() {\n const { getAllSearchParams, removeSearchParam, removeAllSearchParams } =\n useSearchParamActions();\n const searchParams = getAllSearchParams();\n const filterParams = [\n 'category',\n // 'subCategory',\n 'postedAt',\n 'author',\n ];\n const { appendSearchParam } = useSearchParamActions();\n\n const filterSearchParams = searchParams.filter((param) =>\n filterParams.includes(param.key)\n );\n\n return (\n
\n
\n \n \n {/* */}\n\n
\n appendSearchParam('author', 'onefinity')}\n >\n Onefinity\n \n
\n
\n\n {filterSearchParams.length > 0 && }\n\n
\n {filterSearchParams.map((param) => {\n return param.value.map((value) => {\n return (\n \n {value}\n removeSearchParam(param.key, value)}\n />\n \n );\n });\n })}\n {filterSearchParams.length > 1 && (\n removeAllSearchParams(filterParams)}\n >\n Clear All\n \n )}\n
\n
\n );\n}\n\nexport default FilterBar;\n","function Title({ title }: React.HTMLAttributes) {\n const titles = title?.split(' ');\n return (\n
\n

{titles?.[0]}

\n {titles?.map((title, index) => {\n if (index === 0) return
;\n return

 {title}

;\n })}\n
\n );\n}\n\nexport { Title };\n","import * as React from 'react';\nimport { Drawer as DrawerPrimitive } from 'vaul';\n\nimport { cn } from '@/lib/utils';\n\nconst Drawer = ({\n shouldScaleBackground = true,\n ...props\n}: React.ComponentProps) => (\n \n);\nDrawer.displayName = 'Drawer';\n\nconst DrawerTrigger = DrawerPrimitive.Trigger;\n\nconst DrawerPortal = DrawerPrimitive.Portal;\n\nconst DrawerClose = DrawerPrimitive.Close;\n\nconst DrawerOverlay = React.forwardRef<\n React.ElementRef,\n React.ComponentPropsWithoutRef\n>(({ className, ...props }, ref) => (\n \n));\nDrawerOverlay.displayName = DrawerPrimitive.Overlay.displayName;\n\nconst DrawerContent = React.forwardRef<\n React.ElementRef,\n React.ComponentPropsWithoutRef\n>(({ className, children, ...props }, ref) => (\n \n \n \n
\n {children}\n \n \n));\nDrawerContent.displayName = 'DrawerContent';\n\nconst DrawerHeader = ({\n className,\n ...props\n}: React.HTMLAttributes) => (\n \n);\nDrawerHeader.displayName = 'DrawerHeader';\n\nconst DrawerFooter = ({\n className,\n ...props\n}: React.HTMLAttributes) => (\n \n);\nDrawerFooter.displayName = 'DrawerFooter';\n\nconst DrawerTitle = React.forwardRef<\n React.ElementRef,\n React.ComponentPropsWithoutRef\n>(({ className, ...props }, ref) => (\n \n));\nDrawerTitle.displayName = DrawerPrimitive.Title.displayName;\n\nconst DrawerDescription = React.forwardRef<\n React.ElementRef,\n React.ComponentPropsWithoutRef\n>(({ className, ...props }, ref) => (\n \n));\nDrawerDescription.displayName = DrawerPrimitive.Description.displayName;\n\nexport {\n Drawer,\n DrawerPortal,\n DrawerOverlay,\n DrawerTrigger,\n DrawerClose,\n DrawerContent,\n DrawerHeader,\n DrawerFooter,\n DrawerTitle,\n DrawerDescription,\n};\n","import { useState } from 'react';\nimport { IPostWithUserAndAttachments } from '@/redux/post/post';\nimport { useLazyGetPostsQuery } from '@/redux/post/post.api.slice';\n\nfunction useGlobalSearch({ page }: { page: number }) {\n const [query, setQuery] = useState('');\n const [searchResults, setSearchResults] = useState<\n IPostWithUserAndAttachments[]\n >([]);\n const [isSearchDrawerOpen, setIsSearchDrawerOpen] = useState(false);\n const [getPostsQuery] = useLazyGetPostsQuery();\n\n const handleSearch = async () => {\n const results = await getPostsQuery({\n page,\n searchQuery: query,\n }).unwrap();\n setSearchResults(results);\n setIsSearchDrawerOpen(true);\n };\n\n return {\n query,\n setQuery,\n searchResults,\n handleSearch,\n setIsSearchDrawerOpen,\n isSearchDrawerOpen,\n };\n}\n\nexport default useGlobalSearch;\n","import { useEffect, useRef, RefObject } from 'react';\n\ntype Handler = (event: MouseEvent | TouchEvent) => void;\n\ninterface UseHandleClickOutsideOptions {\n enabled?: boolean;\n eventTypes?: Array<'mousedown' | 'mouseup' | 'touchstart' | 'touchend'>;\n excludeRefs?: RefObject[];\n capture?: boolean;\n}\n\n/**\n * A hook that handles clicks outside of the specified element.\n *\n * @param callback Function to call when a click outside is detected\n * @param options Configuration options\n * @returns A ref to attach to the element to monitor\n */\nfunction useHandleClickOutside(\n callback: Handler,\n options: UseHandleClickOutsideOptions = {}\n): RefObject {\n const {\n enabled = true,\n eventTypes = ['mousedown', 'touchstart'],\n excludeRefs = [],\n capture = true,\n } = options;\n\n const ref = useRef(null);\n const callbackRef = useRef(callback);\n\n // Update the callback ref when the callback changes\n useEffect(() => {\n callbackRef.current = callback;\n }, [callback]);\n\n useEffect(() => {\n if (!enabled) return;\n\n const handleClickOutside = (event: MouseEvent | TouchEvent) => {\n // Get the event target safely\n const target = event.target as Node | null;\n if (!target) return;\n\n const el = ref.current;\n\n // Handle cases where ref isn't attached yet\n if (!el) return;\n\n // Check if the click is inside the element or any excluded elements\n const isInside = el.contains(target);\n const isInExcluded = excludeRefs.some(\n (excludeRef) =>\n excludeRef.current && excludeRef.current.contains(target)\n );\n\n // If the click is outside the element and not in any excluded elements, call the callback\n if (!isInside && !isInExcluded) {\n callbackRef.current(event);\n }\n };\n\n // Add event listeners for each specified event type\n eventTypes.forEach((eventType) => {\n document.addEventListener(eventType, handleClickOutside, { capture });\n });\n\n // Clean up by removing event listeners\n // eslint-disable-next-line consistent-return\n return () => {\n eventTypes.forEach((eventType) => {\n document.removeEventListener(eventType, handleClickOutside, {\n capture,\n });\n });\n };\n }, [enabled, eventTypes, excludeRefs, capture]);\n\n return ref;\n}\n\nexport default useHandleClickOutside;\n","import { useEffect, useRef, useState, useCallback } from 'react';\nimport { IPostAutoComplete } from '@/redux/post/post';\nimport { useLazyGetSearchAutoCompleteQuery } from '@/redux/post/post.api.slice';\nimport { debounce } from '@/lib/utils';\nimport useHandleClickOutside from '@/customHooks/useHandleClickOutside';\n\nfunction useGlobalSearchSuggestions(query: string) {\n const [suggestions, setSuggestions] = useState([]);\n const [showSuggestions, setShowSuggestions] = useState(false);\n const inputRef = useRef(null);\n const [getSearchAutoComplete] = useLazyGetSearchAutoCompleteQuery();\n\n const queryRef = useRef(query);\n const abortRef = useRef<() => void>();\n\n useEffect(() => {\n queryRef.current = query;\n }, [query]);\n\n const suggestionsRef = useHandleClickOutside(\n () => {\n setShowSuggestions(false);\n },\n {\n enabled: showSuggestions,\n excludeRefs: [inputRef],\n }\n );\n\n // Create the debounced function outside of the effect\n // so it doesn't get recreated on each query change\n // eslint-disable-next-line react-hooks/exhaustive-deps\n const debouncedFetchSuggestions = useCallback(\n debounce(async () => {\n const currentQuery = queryRef.current;\n\n if (currentQuery.length <= 2 || currentQuery.trim() === '') {\n setSuggestions([]);\n return;\n }\n\n // Abort previous request if exists\n if (abortRef.current) {\n abortRef.current();\n }\n\n const { unwrap, abort } = getSearchAutoComplete({\n searchQuery: currentQuery,\n });\n\n abortRef.current = abort;\n\n try {\n const searchSuggestions = await unwrap();\n setSuggestions(searchSuggestions);\n\n if (searchSuggestions.length > 0) {\n setShowSuggestions(true);\n }\n } catch (error: any) {\n if (error.name !== 'AbortError') {\n setSuggestions([]);\n }\n }\n }, 500),\n []\n );\n\n // Trigger the debounced function when query changes\n useEffect(() => {\n // For empty or short queries, clear suggestions immediately without debouncing\n if (query.length <= 3 || query.trim() === '') {\n setSuggestions([]);\n return;\n }\n\n // Call the debounced function\n debouncedFetchSuggestions();\n\n // Cleanup function\n // eslint-disable-next-line consistent-return\n return () => {\n // Abort any ongoing API request\n if (abortRef.current) {\n abortRef.current();\n }\n };\n }, [query, debouncedFetchSuggestions]);\n\n return {\n suggestions,\n showSuggestions,\n setShowSuggestions,\n suggestionsRef,\n inputRef,\n };\n}\n\nexport default useGlobalSearchSuggestions;\n","import * as React from 'react';\n\nimport { cn } from '@/lib/utils';\n\nexport interface InputProps\n extends React.InputHTMLAttributes {}\n\nconst Input = React.forwardRef(\n ({ className, type, ...props }, ref) => {\n return (\n \n );\n }\n);\nInput.displayName = 'Input';\n\nexport { Input };\n","import { forwardRef, KeyboardEvent } from 'react';\nimport { Search } from 'lucide-react';\nimport { Input } from '@/components/ui/input';\n\ninterface SearchBarProps {\n query: string;\n setQuery: (query: string) => void;\n setShowSuggestions: (show: boolean) => void;\n handleSearch: () => void;\n}\n\nconst SearchBar = forwardRef(\n ({ query, setQuery, setShowSuggestions, handleSearch }, ref) => {\n const handleKeyDown = (e: KeyboardEvent) => {\n if (e.key === 'Enter') {\n handleSearch();\n }\n };\n\n return (\n
\n {\n setQuery(e.target.value);\n setShowSuggestions(true);\n }}\n onFocus={() => setShowSuggestions(true)}\n onKeyDown={handleKeyDown}\n className=\"pr-10 w-full\"\n />\n \n \n
\n
\n );\n }\n);\n\nSearchBar.displayName = 'SearchBar';\n\nexport default SearchBar;\n","import { forwardRef } from 'react';\nimport { IPostAutoComplete } from '@/redux/post/post';\n\ninterface AutoCompleteResultsProps {\n suggestions: IPostAutoComplete[];\n showSuggestions: boolean;\n handleSuggestionClick: (id: string) => void;\n}\n\nconst AutoCompleteResults = forwardRef<\n HTMLDivElement,\n AutoCompleteResultsProps\n>(({ showSuggestions, suggestions, handleSuggestionClick }, ref) => {\n if (!showSuggestions || suggestions.length <= 0) {\n return
;\n }\n\n return (\n \n
    \n {suggestions.map((suggestion, index) => (\n handleSuggestionClick(suggestion._id)}\n onKeyDown={(e) => {\n if (e.key === 'Enter') {\n handleSuggestionClick(suggestion._id);\n }\n }}\n tabIndex={index}\n role=\"option\"\n aria-selected={false}\n className=\"cursor-pointer px-4 py-2 hover:bg-gray-100\"\n >\n {suggestion.title}\n \n ))}\n
\n
\n );\n});\n\nAutoCompleteResults.displayName = 'AutoCompleteResults';\n\nexport default AutoCompleteResults;\n","import InfiniteScroll from 'react-infinite-scroll-component';\nimport { useState } from 'react';\nimport { XIcon } from 'lucide-react';\nimport { useNavigate } from 'react-router-dom';\nimport { Drawer, DrawerContent, DrawerHeader } from '@/components/ui/drawer';\nimport { Button } from '@/components/ui/button';\nimport { Title } from '@/components/ui/title';\nimport PostCard from '@/components/Post/PostCard';\nimport useGlobalSearch from './hooks/useGlobalSearch';\nimport useGlobalSearchSuggestions from './hooks/useGlobalSearchSuggestions';\nimport { Skeleton } from '@/components/ui/skeleton';\nimport SearchBar from './components/SearchBar';\nimport AutoCompleteResults from './components/AutocompleteResults';\nimport { cn } from '@/lib/utils';\n\nexport default function GlobalSearch({ className }: { className?: string }) {\n const [page, setPage] = useState(1);\n const {\n query,\n setQuery,\n searchResults,\n isSearchDrawerOpen,\n setIsSearchDrawerOpen,\n handleSearch,\n } = useGlobalSearch({ page });\n\n const {\n suggestions,\n showSuggestions,\n setShowSuggestions,\n suggestionsRef,\n inputRef,\n } = useGlobalSearchSuggestions(query);\n const navigate = useNavigate();\n\n const handleSuggestionClick = (id: string) => {\n navigate(`/model/${id}`);\n setShowSuggestions(false);\n setQuery('');\n };\n\n const fetchMoreData = () => {\n setPage((prev) => prev + 1);\n };\n\n const handleCloseSearchDrawer = () => {\n setIsSearchDrawerOpen(false);\n setQuery('');\n };\n\n return (\n
\n \n\n \n\n \n \n \n \n <Button\n variant=\"outline\"\n size=\"icon\"\n onClick={handleCloseSearchDrawer}\n >\n <XIcon className=\"h-5 w-5\" />\n </Button>\n </DrawerHeader>\n <div className=\"h-full overflow-y-auto\">\n <InfiniteScroll\n dataLength={searchResults.length}\n next={fetchMoreData}\n hasMore={(searchResults?.length ?? 0) === 20}\n loader={\n <>\n {Array.from({ length: 20 }).map((_, index) => (\n <Skeleton key={index} className=\"w-[342px] h-[478px]\" />\n ))}\n </>\n }\n className=\"flex flex-wrap sm:justify-between justify-center py-2 w-full gap-10 items-center overflow-y-scroll\"\n >\n {searchResults.map((post) => (\n // eslint-disable-next-line jsx-a11y/click-events-have-key-events, jsx-a11y/no-static-element-interactions\n <div onClick={handleCloseSearchDrawer} key={post._id}>\n <PostCard\n id={post._id}\n authorName={`${post?.user?.firstname} ${post?.user?.lastname}`}\n authorAvatar={post?.user?.profilePicture}\n title={post.title}\n description={post.description}\n likesCount={post.likes}\n commentsCount={post.comments}\n attachments={post.attachments}\n createdAt={post.createdAt}\n category={post.category}\n hasLikedByUser={post?.hasLikedByUser}\n isOnefinityOfficial={post?.user?.isOnefinityOfficial}\n isOwner={false}\n />\n </div>\n ))}\n </InfiniteScroll>\n </div>\n </DrawerContent>\n </Drawer>\n </div>\n );\n}\n","import FeaturedCarousel from '@/pages/Landing/FeaturedCarousel';\nimport FeaturedPostsList from '@/redux/post/FeaturedPostsList';\nimport FilterBar from './FilterBar';\nimport { Title } from '@/components/ui/title';\nimport GlobalSearch from './GlobalSearch';\n\nfunction Landing() {\n return (\n <div className=\"px-4 sm:px-[48px] py-[84px]\">\n <GlobalSearch className=\"max-w-full md:hidden\" />\n\n <Title title=\"Featured Designs\" />\n <FeaturedCarousel />\n <a\n href=\"https://www.onefinitycnc.com\"\n target=\"_blank\"\n rel=\"noreferrer\"\n className=\"w-full\"\n >\n <img\n key=\"primary-landing-page-banner\"\n src=\"https://filefinity-public.s3.ap-south-1.amazonaws.com/primary-landing-page-banner.png?no-cache=true\"\n alt=\"primary-landing-page-banner\"\n className=\"w-full h-[100px] object-contain\"\n />\n </a>\n <FilterBar />\n <Title title=\"Top Results\" />\n <div className=\"flex flex-wrap items-center \">\n <FeaturedPostsList />\n </div>\n </div>\n );\n}\n\nexport default Landing;\n","import * as React from 'react';\nimport * as LabelPrimitive from '@radix-ui/react-label';\nimport { cva, type VariantProps } from 'class-variance-authority';\n\nimport { cn } from '@/lib/utils';\n\nconst labelVariants = cva(\n 'text-sm font-medium leading-none peer-disabled:cursor-not-allowed peer-disabled:opacity-70'\n);\n\nconst Label = React.forwardRef<\n React.ElementRef<typeof LabelPrimitive.Root>,\n React.ComponentPropsWithoutRef<typeof LabelPrimitive.Root> &\n VariantProps<typeof labelVariants>\n>(({ className, ...props }, ref) => (\n <LabelPrimitive.Root\n ref={ref}\n className={cn(labelVariants(), className)}\n {...props}\n />\n));\nLabel.displayName = LabelPrimitive.Root.displayName;\n\nexport { Label };\n","import * as React from 'react';\nimport * as LabelPrimitive from '@radix-ui/react-label';\nimport { Slot } from '@radix-ui/react-slot';\nimport {\n Controller,\n ControllerProps,\n FieldPath,\n FieldValues,\n FormProvider,\n useFormContext,\n} from 'react-hook-form';\n\nimport { cn } from '@/lib/utils';\nimport { Label } from '@/components/ui/label';\n\nconst Form = FormProvider;\n\ntype FormFieldContextValue<\n TFieldValues extends FieldValues = FieldValues,\n TName extends FieldPath<TFieldValues> = FieldPath<TFieldValues>,\n> = {\n name: TName;\n};\n\nconst FormFieldContext = React.createContext<FormFieldContextValue>(\n {} as FormFieldContextValue\n);\n\nfunction FormField<\n TFieldValues extends FieldValues = FieldValues,\n TName extends FieldPath<TFieldValues> = FieldPath<TFieldValues>,\n>({ ...props }: ControllerProps<TFieldValues, TName>) {\n return (\n <FormFieldContext.Provider value={{ name: props.name }}>\n <Controller {...props} />\n </FormFieldContext.Provider>\n );\n}\n\nconst useFormField = () => {\n const fieldContext = React.useContext(FormFieldContext);\n const itemContext = React.useContext(FormItemContext);\n const { getFieldState, formState } = useFormContext();\n\n const fieldState = getFieldState(fieldContext.name, formState);\n\n if (!fieldContext) {\n throw new Error('useFormField should be used within <FormField>');\n }\n\n const { id } = itemContext;\n\n return {\n id,\n name: fieldContext.name,\n formItemId: `${id}-form-item`,\n formDescriptionId: `${id}-form-item-description`,\n formMessageId: `${id}-form-item-message`,\n ...fieldState,\n };\n};\n\ntype FormItemContextValue = {\n id: string;\n};\n\nconst FormItemContext = React.createContext<FormItemContextValue>(\n {} as FormItemContextValue\n);\n\nconst FormItem = React.forwardRef<\n HTMLDivElement,\n React.HTMLAttributes<HTMLDivElement>\n>(({ className, ...props }, ref) => {\n const id = React.useId();\n\n return (\n <FormItemContext.Provider value={{ id }}>\n <div ref={ref} className={cn('space-y-2', className)} {...props} />\n </FormItemContext.Provider>\n );\n});\nFormItem.displayName = 'FormItem';\n\nconst FormLabel = React.forwardRef<\n React.ElementRef<typeof LabelPrimitive.Root>,\n React.ComponentPropsWithoutRef<typeof LabelPrimitive.Root>\n>(({ className, ...props }, ref) => {\n const { error, formItemId } = useFormField();\n\n return (\n <Label\n ref={ref}\n className={cn(error && 'text-destructive', className)}\n htmlFor={formItemId}\n {...props}\n />\n );\n});\nFormLabel.displayName = 'FormLabel';\n\nconst FormControl = React.forwardRef<\n React.ElementRef<typeof Slot>,\n React.ComponentPropsWithoutRef<typeof Slot>\n>(({ ...props }, ref) => {\n const { error, formItemId, formDescriptionId, formMessageId } =\n useFormField();\n\n return (\n <Slot\n ref={ref}\n id={formItemId}\n aria-describedby={\n !error\n ? `${formDescriptionId}`\n : `${formDescriptionId} ${formMessageId}`\n }\n aria-invalid={!!error}\n {...props}\n />\n );\n});\nFormControl.displayName = 'FormControl';\n\nconst FormDescription = React.forwardRef<\n HTMLParagraphElement,\n React.HTMLAttributes<HTMLParagraphElement>\n>(({ className, ...props }, ref) => {\n const { formDescriptionId } = useFormField();\n\n return (\n <p\n ref={ref}\n id={formDescriptionId}\n className={cn('text-sm text-muted-foreground', className)}\n {...props}\n />\n );\n});\nFormDescription.displayName = 'FormDescription';\n\nconst FormMessage = React.forwardRef<\n HTMLParagraphElement,\n React.HTMLAttributes<HTMLParagraphElement>\n>(({ className, children, ...props }, ref) => {\n const { error, formMessageId } = useFormField();\n const body = error ? String(error?.message) : children;\n\n if (!body) {\n return null;\n }\n\n return (\n <p\n ref={ref}\n id={formMessageId}\n className={cn('text-sm font-medium text-destructive', className)}\n {...props}\n >\n {body}\n </p>\n );\n});\nFormMessage.displayName = 'FormMessage';\n\nexport {\n useFormField,\n Form,\n FormItem,\n FormLabel,\n FormControl,\n FormDescription,\n FormMessage,\n FormField,\n};\n","import apiSlice from '../api/api.slice';\nimport {\n ICommentWithUser,\n IComment,\n ICreateCommentRequest,\n IDeleteCommentRequest,\n} from './comment';\n\nexport const commentApiSlice = apiSlice.injectEndpoints({\n endpoints: (builder) => ({\n getComments: builder.query<ICommentWithUser[], string>({\n query: (postId) => ({\n url: `/api/v1/comment/getCommentsByPostId/${postId}`,\n method: 'GET',\n }),\n transformResponse: (response: { comments: ICommentWithUser[] }) =>\n response.comments,\n }),\n createComment: builder.mutation<IComment, ICreateCommentRequest>({\n query: ({ postId, comment }) => ({\n url: `/api/v1/comment/create`,\n method: 'POST',\n body: {\n postId,\n comment,\n },\n }),\n transformResponse: (response: { comment: IComment }) => response.comment,\n }),\n deleteComment: builder.mutation<IComment, IDeleteCommentRequest>({\n query: (params) => ({\n url: `/api/v1/comment/delete`,\n method: 'DELETE',\n params,\n }),\n }),\n }),\n});\n\napiSlice.enhanceEndpoints({\n addTagTypes: ['Comment'],\n endpoints: {\n getComments: {\n providesTags: ['Comment'],\n },\n createComment: {\n invalidatesTags: ['Comment', 'Post'],\n },\n deleteComment: {\n invalidatesTags: ['Comment', 'Post'],\n },\n },\n});\n\nexport const {\n useGetCommentsQuery,\n useCreateCommentMutation,\n useDeleteCommentMutation,\n} = commentApiSlice;\n","import Quill from 'quill';\nimport { Delta, Op } from 'quill/core';\n\nexport function deltaToHtml(inputDelta: any) {\n const tempCont = document.createElement('div');\n const quill = new Quill(tempCont);\n quill.setContents(JSON.parse(inputDelta));\n return tempCont.getElementsByClassName('ql-editor')[0].innerHTML;\n}\n\nexport function isDeltaNotEmpty(delta: string): boolean {\n const ops = JSON.parse(delta) as Op[];\n\n if (!Array.isArray(ops)) return false;\n\n if (!ops || ops.length === 0) return false;\n\n if ((ops.length === 1 && ops[0].insert === '') || ops[0].insert === '\\n') {\n return false;\n }\n\n return true;\n}\n\nfunction removeKeysFromObject(\n obj: Record<string, any>,\n keysToRemove: string[]\n) {\n return Object.fromEntries(\n Object.entries(obj).filter(([key]) => !keysToRemove.includes(key))\n );\n}\n\nexport function cleanDelta(delta: Delta): Delta {\n const cleanedOps = delta.ops.map((op) => {\n if (op.insert === '\\n') {\n return { insert: '\\n' };\n }\n if (op?.attributes) {\n // eslint-disable-next-line no-param-reassign\n op.attributes = removeKeysFromObject(op.attributes, [\n 'color',\n 'background',\n ]);\n }\n return op;\n });\n // eslint-disable-next-line no-param-reassign\n delta.ops = cleanedOps;\n return delta;\n}\n","import { z } from 'zod';\nimport { isDeltaNotEmpty } from '@/lib/quill';\n\nexport const postCommentSchema = z.object({\n comment: z.any().refine(isDeltaNotEmpty, \"Comment can't be empty\"),\n});\n","import { z } from 'zod';\nimport { zodResolver } from '@hookform/resolvers/zod';\nimport { useForm } from 'react-hook-form';\nimport { postCommentSchema } from './comment.schema';\n\nexport const useCommentForm = () => {\n return useForm<z.infer<typeof postCommentSchema>>({\n resolver: zodResolver(postCommentSchema),\n defaultValues: {\n comment: '',\n },\n });\n};\n","import { Delta, Range, QuillOptions } from 'quill/core';\nimport Quill from 'quill';\nimport React, {\n forwardRef,\n useEffect,\n useLayoutEffect,\n useRef,\n Dispatch,\n SetStateAction,\n} from 'react';\nimport 'quill/dist/quill.snow.css';\nimport { cn } from '@/lib/utils';\nimport { cleanDelta } from '@/lib/quill';\n\ninterface QuillEditorProps extends React.HTMLAttributes<HTMLDivElement> {\n readOnly?: boolean;\n defaultValue?: any;\n quillOptions: QuillOptions;\n onTextChange?: (delta: Delta) => void;\n onSelectionChange?: Dispatch<SetStateAction<Range | undefined>>;\n placeholder?: string;\n}\n\nconst QuillEditor = forwardRef<Quill | null, QuillEditorProps>(\n (\n {\n readOnly = false,\n defaultValue,\n quillOptions,\n onTextChange,\n onSelectionChange,\n placeholder,\n className,\n children,\n ...props\n },\n ref\n ) => {\n const containerRef = useRef<HTMLDivElement | null>(null);\n const defaultValueRef = useRef(defaultValue);\n const onTextChangeRef = useRef(onTextChange);\n const onSelectionChangeRef = useRef(onSelectionChange);\n\n useLayoutEffect(() => {\n onTextChangeRef.current = onTextChange;\n onSelectionChangeRef.current = onSelectionChange;\n });\n\n useEffect(() => {\n if (ref && typeof ref === 'object' && ref.current) {\n ref.current.enable(!readOnly);\n }\n }, [ref, readOnly]);\n\n useEffect(() => {\n const container = containerRef.current;\n if (!container) return;\n\n const editorContainer = container.appendChild(\n container.ownerDocument.createElement('div')\n );\n const quill = new Quill(editorContainer, {\n ...quillOptions,\n placeholder,\n });\n\n // Expose the Quill instance via ref\n if (ref) {\n if (typeof ref === 'function') ref(quill);\n else ref.current = quill;\n }\n\n if (defaultValueRef.current) {\n const cleanedDelta = cleanDelta(defaultValueRef.current);\n quill.setContents(cleanedDelta);\n }\n\n quill.on('text-change', () => {\n const delta = quill.getContents();\n const cleanedDelta = cleanDelta(delta);\n onTextChangeRef.current?.(cleanedDelta);\n });\n\n quill.on('selection-change', (range: Range) => {\n onSelectionChangeRef.current?.(range);\n });\n\n return () => {\n if (ref && typeof ref === 'object') ref.current = null;\n container.innerHTML = '';\n };\n }, [ref, placeholder]);\n\n return (\n <>\n <div\n ref={containerRef}\n className={cn('h-auto', className)}\n {...props}\n id=\"quill-editor\"\n >\n {children}\n </div>\n </>\n );\n }\n);\n\nQuillEditor.displayName = 'QuillEditor';\n\nexport default QuillEditor;\n","import * as React from 'react';\n\nimport { cn } from '@/lib/utils';\n\nexport interface TextareaProps\n extends React.TextareaHTMLAttributes<HTMLTextAreaElement> {}\n\nconst Textarea = React.forwardRef<HTMLTextAreaElement, TextareaProps>(\n ({ className, ...props }, ref) => {\n return (\n <textarea\n className={cn(\n 'flex min-h-[80px] w-full rounded-md border border-input bg-background px-3 py-2 text-sm ring-offset-background placeholder:text-muted-foreground focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-ring focus-visible:ring-offset-2 disabled:cursor-not-allowed disabled:opacity-50',\n className\n )}\n ref={ref}\n {...props}\n />\n );\n }\n);\nTextarea.displayName = 'Textarea';\n\nexport { Textarea };\n","export default \"__VITE_ASSET__CmL6FoWz__\"","import { useSelector } from 'react-redux';\nimport ProfilePicture from '@/components/ui/profile-picture';\nimport { getUserFullName } from '@/lib/utils';\nimport { UserState } from '@/redux/auth/auth';\nimport gradientBg from '@/assets/gradient-bg.png';\n\nfunction PostCommentFormHeader() {\n const { isAuthenticated, user } = useSelector(\n (state: { auth: UserState }) => state.auth\n );\n\n if (user && isAuthenticated) {\n return (\n <div className=\"flex items-center gap-5\">\n <ProfilePicture\n className=\"w-10 h-10\"\n src={user.profilePicture}\n alt={user.firstname}\n />\n <span className=\"text-xl text-[#000] font-primary font-medium\">\n {getUserFullName(user)}\n </span>\n </div>\n );\n }\n\n return (\n <div\n className=\"h-[72px] w-full bg-cover bg-center flex items-center justify-center overflow-hidden rounded-md\"\n style={{ backgroundImage: `url(${gradientBg})` }}\n >\n <h1 className=\"font-primary font-medium text-xl leading-[26px] text-[#FFFFFF]\">\n Whoops! You’re Missing out..\n </h1>\n </div>\n );\n}\n\nexport default PostCommentFormHeader;\n","import { useSelector, useDispatch } from 'react-redux';\nimport { z } from 'zod';\nimport { useRef } from 'react';\nimport { Delta } from 'quill/core';\nimport Quill from 'quill';\nimport { Button } from '@/components/ui/button';\nimport {\n Form,\n FormControl,\n FormField,\n FormItem,\n FormMessage,\n} from '@/components/ui/form';\nimport { useCreateCommentMutation } from './comment.api.slice';\nimport { postCommentSchema } from './comment.schema';\nimport { useCommentForm } from './useCommentForm';\nimport { UserState } from '../auth/auth';\nimport { setShowLoginDialog } from '../global/global.slice';\nimport QuillEditor from '@/components/ui/quill-editor';\nimport { Textarea } from '@/components/ui/textarea';\nimport PostCommentFormHeader from '@/components/Comment/PostCommentFormHeader';\n\nfunction PostCommentForm({ postId }: { postId: string }) {\n const dispatch = useDispatch();\n const [comment] = useCreateCommentMutation();\n const { isAuthenticated } = useSelector(\n (state: { auth: UserState }) => state.auth\n );\n const quillRef = useRef<Quill | null>(null);\n const commentForm = useCommentForm();\n\n async function handleCommentSubmit(\n values: z.infer<typeof postCommentSchema>\n ) {\n if (!isAuthenticated) {\n dispatch(setShowLoginDialog(true));\n return;\n }\n\n await comment({\n postId,\n comment: values.comment,\n }).unwrap();\n\n quillRef?.current?.setContents(new Delta().insert('\\n'));\n commentForm.reset();\n }\n\n const toolbarOptions = [['bold', 'italic', 'underline']];\n\n return (\n <div className=\"w-full lg:w-2/3 border border-[#000] p-5 rounded-md h-fit gap-5 flex flex-col\">\n <PostCommentFormHeader />\n <Form {...commentForm}>\n <form\n onSubmit={commentForm.handleSubmit(handleCommentSubmit)}\n className=\"flex flex-col gap-2\"\n >\n <FormField\n control={commentForm.control}\n name=\"comment\"\n render={({ field }) => (\n <FormItem>\n <FormControl>\n <Textarea\n placeholder=\"Enter your comments\"\n {...field}\n className=\"hidden\"\n />\n </FormControl>\n <div className=\"flex flex-col gap-2 min-h-[300px]\">\n <QuillEditor\n quillOptions={{\n theme: 'snow',\n modules: {\n toolbar: toolbarOptions,\n },\n }}\n placeholder=\"Write your comment\"\n onTextChange={(delta: Delta) => {\n field.onChange(JSON.stringify(delta.ops));\n }}\n ref={quillRef}\n readOnly={false}\n className=\"min-h-[300px] border border-[#B4B7C9] rounded-md\"\n />\n </div>\n <FormMessage />\n </FormItem>\n )}\n />\n <div className=\"flex justify-end border-t border-[#D4D7E5] mt-5\">\n <Button\n type=\"submit\"\n variant=\"default\"\n size=\"lg\"\n className=\"rounded-md mt-5\"\n >\n {isAuthenticated ? 'Post' : 'Login to Comment'}\n </Button>\n </div>\n </form>\n </Form>\n </div>\n );\n}\n\nexport default PostCommentForm;\n","import React from 'react';\nimport { cn } from '@/lib/utils';\n\nconst Timeline = React.forwardRef<\n HTMLDivElement,\n React.HTMLAttributes<HTMLDivElement>\n>(({ className, ...props }, ref) => (\n <div ref={ref} {...props} className={cn('space-y-0 w-full', className)} />\n));\n\nTimeline.displayName = 'Timeline';\n\nconst TimelineItem = React.forwardRef<\n HTMLDivElement,\n React.HTMLAttributes<HTMLDivElement> & { active?: boolean }\n>(({ className, active, ...props }, ref) => (\n <div ref={ref} {...props} className={cn('flex', className)} />\n));\n\nTimelineItem.displayName = 'TimelineItem';\n\nconst TimelineItemLabel = React.forwardRef<\n HTMLDivElement,\n React.HTMLAttributes<HTMLDivElement>\n>(({ className, ...props }, ref) => (\n <div\n ref={ref}\n {...props}\n className={cn(\n 'w-20 py-3 flex-shrink-0 text-sm text-muted-foreground',\n className\n )}\n />\n));\n\nTimelineItemLabel.displayName = 'TimelineItemLabel';\n\nconst TimelineConnector = React.forwardRef<\n HTMLDivElement,\n React.HTMLAttributes<HTMLDivElement> & {\n active?: boolean;\n onClick?: () => void;\n }\n>(({ className, active, onClick, ...props }, ref) => (\n <div\n ref={ref}\n {...props}\n className={cn(\n 'w-12 flex-shrink-0 flex items-center justify-center',\n className\n )}\n >\n <div className=\"w-px h-full bg-border relative\">\n <button\n onClick={onClick}\n className={cn(\n 'absolute top-3 left-1/2 w-3 h-3 rounded-full transform -translate-x-1/2 transition-colors duration-200',\n active ? 'bg-primary' : 'bg-border hover:bg-primary/50'\n )}\n aria-label={\n active ? 'Current timeline item' : 'Navigate to this timeline item'\n }\n />\n </div>\n </div>\n));\n\nTimelineConnector.displayName = 'TimelineConnector';\n\nconst TimelineContent = React.forwardRef<\n HTMLDivElement,\n React.HTMLAttributes<HTMLDivElement>\n>(({ className, ...props }, ref) => (\n <div\n ref={ref}\n {...props}\n className={cn('flex-grow py-3 border-b border-border', className)}\n />\n));\n\nTimelineContent.displayName = 'TimelineContent';\n\nconst TimelineContentLabel = React.forwardRef<\n HTMLHeadingElement,\n React.HTMLAttributes<HTMLHeadingElement>\n>(({ className, ...props }, ref) => (\n <h3 ref={ref} {...props} className={cn('font-semibold', className)} />\n));\n\nTimelineContentLabel.displayName = 'TimelineContentLabel';\n\nconst TimelineContentDescription = React.forwardRef<\n HTMLParagraphElement,\n React.HTMLAttributes<HTMLParagraphElement>\n>(({ className, ...props }, ref) => (\n <p\n ref={ref}\n {...props}\n className={cn('text-sm text-muted-foreground mt-1', className)}\n />\n));\n\nTimelineContentDescription.displayName = 'TimelineContentDescription';\n\nexport {\n Timeline,\n TimelineItem,\n TimelineItemLabel,\n TimelineConnector,\n TimelineContent,\n TimelineContentLabel,\n TimelineContentDescription,\n};\n","/* eslint-disable jsx-a11y/control-has-associated-label */\nimport { Trash2 } from 'lucide-react';\nimport { useSelector } from 'react-redux';\nimport { useDeleteCommentMutation } from './comment.api.slice';\nimport { selectCurrentUser } from '../auth/auth.slice';\n\nfunction DeletePostComment({\n postId,\n userId,\n commentId,\n}: {\n postId: string;\n userId: string;\n commentId: string;\n}) {\n const { isAuthenticated, user } = useSelector(selectCurrentUser);\n const [deltePostComment] = useDeleteCommentMutation();\n const handlePostCommentDelete = () => {\n // eslint-disable-next-line no-alert\n const confirmation = window.confirm('Are you sure you want to delete?');\n if (!confirmation) return;\n deltePostComment({ postId, commentId });\n };\n if (!isAuthenticated) {\n return <div />;\n }\n if (\n userId !== user?._id &&\n !user?.email.endsWith('@onefinitycnc.com') &&\n user?.isVerified\n ) {\n return <div />;\n }\n return (\n <div>\n <button type=\"button\" onClick={handlePostCommentDelete}>\n <Trash2 size={14} />\n </button>\n </div>\n );\n}\n\nexport default DeletePostComment;\n","import { useRef, useEffect, useState } from 'react';\nimport {\n Timeline,\n TimelineConnector,\n TimelineContent,\n TimelineContentDescription,\n TimelineContentLabel,\n TimelineItem,\n TimelineItemLabel,\n} from '../ui/comments-timeline';\nimport { ICommentWithUser } from '@/redux/commet/comment';\nimport { deltaToHtml } from '@/lib/quill';\nimport { formatTimestamp, getUserFullName } from '@/lib/utils';\nimport DeletePostComment from '@/redux/commet/DeletePostComment';\n\nexport default function CommentsTimeline({\n comments,\n}: {\n comments: ICommentWithUser[];\n}) {\n const containerRef = useRef<HTMLDivElement>(null);\n const [activeIndex, setActiveIndex] = useState(2);\n\n useEffect(() => {\n const container = containerRef.current;\n if (!container) return;\n\n const handleScroll = () => {\n const scrollPosition = container.scrollTop;\n const itemHeight = container.scrollHeight / comments.length;\n const newActiveIndex = Math.max(\n 1,\n Math.floor(scrollPosition / itemHeight) + 2\n );\n setActiveIndex(newActiveIndex);\n };\n\n container.addEventListener('scroll', handleScroll);\n\n // eslint-disable-next-line consistent-return\n return () => {\n container.removeEventListener('scroll', handleScroll);\n };\n }, [comments]);\n\n const scrollToItem = (index: number) => {\n const container = containerRef.current;\n if (!container) return;\n\n const itemHeight = container.scrollHeight / comments.length;\n container.scrollTo({\n top: Math.max(0, (index - 1) * itemHeight), // Update 3: Modified scrollToItem function\n behavior: 'smooth',\n });\n };\n\n return (\n <div className=\"w-full max-w-2xl mx-auto h-[600px]\">\n <div\n ref={containerRef}\n className=\"h-full overflow-y-auto scrollbar-hide font-tertiary\"\n >\n <Timeline>\n {comments?.map((comment, index) => (\n <TimelineItem key={comment?._id} active={index === activeIndex}>\n <TimelineItemLabel className=\"font-medium text-sm text-[#808080] hidden lg:block\">\n {formatTimestamp(comment.commentedAt)}\n </TimelineItemLabel>\n <TimelineConnector\n active={index === activeIndex}\n onClick={() => scrollToItem(index)}\n />\n <TimelineContent>\n <TimelineContentLabel className=\"font-secondary text-lg font-normal text-[#434343]\">\n {getUserFullName(comment.user)}\n </TimelineContentLabel>\n <TimelineContentDescription className=\"flex gap-5\">\n <div\n className=\"font-tertiary text-sm text-[#808080] w-[90%] text-justify \"\n // eslint-disable-next-line react/no-danger\n dangerouslySetInnerHTML={{\n __html: deltaToHtml(comment.comment),\n }}\n />\n <DeletePostComment\n commentId={comment._id}\n postId={comment.post}\n userId={comment.user?._id}\n />\n </TimelineContentDescription>\n </TimelineContent>\n </TimelineItem>\n ))}\n </Timeline>\n </div>\n </div>\n );\n}\n","function NoComments() {\n return (\n <svg\n width=\"253\"\n height=\"253\"\n viewBox=\"0 0 253 253\"\n fill=\"none\"\n xmlns=\"http://www.w3.org/2000/svg\"\n >\n <path\n d=\"M151.654 79.7746C150.95 76.5846 150.53 73.3386 150.399 70.0746L151.101 69.9367C150.989 69.6077 150.908 69.2689 150.86 68.9247C149.994 69.5192 146.571 67.8355 146.042 64.1809C145.965 63.1887 146.103 62.1916 146.447 61.2578C146.792 60.324 147.333 59.4756 148.036 58.7705C148.027 58.6238 147.666 58.6238 147.583 58.6137C146.79 58.5419 146.053 58.1761 145.517 57.5883C144.981 57.0004 144.684 56.233 144.685 55.4373C144.663 53.8505 145.089 52.2898 145.913 50.9339C146.738 49.5006 147.249 49.1123 147.094 48.9769C146.94 48.8415 146.537 49.0579 145.129 49.0806C143.802 49.2084 142.468 48.9266 141.306 48.2732C140.145 47.6198 139.211 46.6261 138.632 45.426C138.4 45.0301 138.059 44.0421 137.506 44.0143C136.953 43.9865 136.367 44.5861 135.946 44.8442C135.461 45.2369 134.894 45.5161 134.287 45.6615C133.68 45.8068 133.049 45.8145 132.438 45.6841C131.965 45.4626 131.551 45.1321 131.23 44.7199C130.91 44.3076 130.691 43.8252 130.593 43.3122C130.51 43.0263 130.482 41.9562 130.178 41.8081C129.873 41.6601 128.968 42.1687 128.637 42.2231C128.165 42.3042 127.682 42.2926 127.215 42.1889L127.15 42.6038C125.964 43.8069 124.957 45.1744 124.16 46.6645C121.653 53.0401 124.077 56.3797 122.564 63.0918C122.252 64.8534 122.3 66.66 122.705 68.4025C123.111 70.145 123.864 71.7874 124.922 73.2307C126.15 74.8788 127.876 76.0872 129.845 76.6766L129.836 76.7146C129.544 76.6829 130.117 79.1585 131.756 81.328C133.925 84.2818 136.666 86.7372 140.533 86.5335C144.104 86.3577 147.27 84.2362 149.974 82.0668C150.51 81.6329 151.247 80.7664 152.032 80.0643L151.654 79.7746Z\"\n fill=\"#BD6245\"\n fillOpacity=\"0.4\"\n />\n <path\n d=\"M240.52 216.677L224.526 222.787L224.452 222.66C238.247 213.951 237.213 214.534 237.299 214.677L240.52 216.677Z\"\n fill=\"#6CD0E6\"\n />\n <path\n d=\"M222.293 209.229L209.022 215.293L219.072 222.823L233.422 213.677L222.293 209.229Z\"\n fill=\"#B6688A\"\n />\n <path\n d=\"M217.315 225.544L206.852 229.541L177.439 201.431L186.17 200.701L217.315 225.544Z\"\n fill=\"#6CD0E6\"\n />\n <path\n d=\"M211.374 193.466L182.192 197.527C182.326 197.633 216.545 224.927 218.453 226.458L246.675 208.636L211.374 193.466ZM209.021 215.293L222.292 209.229L233.424 213.677L219.074 222.823L209.021 215.293Z\"\n fill=\"white\"\n />\n <path\n d=\"M197.34 122.615C197.147 120.89 196.708 118.453 195.023 117.512C194.017 116.948 193.602 117.798 193.611 118.702C193.759 120.447 194.132 122.166 194.719 123.816C194.765 124.008 195.216 126.599 195.199 126.592C194.869 126.476 194.664 125.163 194.589 124.895C194.266 123.824 192.855 118.924 191.11 119.348C188.909 119.876 192.249 127.355 191.895 127.479C191.738 127.535 190.971 125.846 190.907 125.716C190.183 124.153 189.282 122.68 188.221 121.323C187.954 121 187.234 120.215 186.745 120.621C185.269 121.859 187.852 126.44 188.516 127.608C188.673 127.885 189.429 128.696 189.41 129.02C189.386 129.685 185.711 122.957 183.882 123.934C182.997 124.415 183.828 126.602 184.049 127.23C184.615 128.465 185.021 129.768 185.257 131.106C185.384 132.813 185.083 134.438 185.248 136.025L185.017 136.052C182.951 136.309 180.904 136.7 178.889 137.225C178.308 137.327 176.951 137.787 176.416 137.381C176.195 137.216 176.204 136.782 176.333 136.219C175.597 136.022 174.842 135.91 174.081 135.886C172.549 135.674 171.017 135.48 169.485 135.254L169.558 134.727C168.71 129.91 169.088 124.649 169.273 119.8C169.614 111.359 169.798 112.671 169.679 112.427C168.498 113 159.774 118.112 157.34 119.616L157.552 119.967C157.321 126.048 157.679 134.631 159.315 140.529C160.468 144.664 162.477 147.904 167.012 148.096C169.808 148.222 172.66 147.358 175.383 146.86C179.72 146.057 184.473 145.522 188.58 143.842C191.711 142.344 193.034 140.378 194.966 137.686C195.142 137.456 195.585 136.81 195.64 136.717C195.631 136.735 195.618 136.75 195.604 136.763C197.079 132.201 197.669 127.399 197.34 122.615Z\"\n fill=\"#BD6245\"\n fillOpacity=\"0.4\"\n />\n <path\n d=\"M194.586 124.894C194.276 123.82 192.852 118.925 191.108 119.347C189.391 119.765 191.122 124.696 191.413 125.614C191.447 125.725 192.045 127.432 191.892 127.479C191.739 127.525 190.967 125.845 190.904 125.715C190.288 124.436 187.828 119.717 186.742 120.621C185.263 121.854 187.85 126.44 188.513 127.608C188.67 127.885 189.424 128.697 189.408 129.019C189.397 129.251 189.2 128.857 188.07 127.386C187.476 126.613 185.206 123.221 183.879 123.934C182.994 124.412 183.824 126.602 184.046 127.229C184.612 128.465 185.018 129.767 185.255 131.105C185.381 132.813 185.08 134.437 185.246 136.025L185.014 136.051C182.947 136.304 180.9 136.695 178.886 137.224C178.305 137.323 176.95 137.786 176.413 137.381C176.192 137.214 176.201 136.781 176.33 136.218C176.753 134.867 177.265 133.544 177.862 132.259C181.484 121.561 181.365 112.065 179.357 101.001C179.023 99.1565 177.752 94.0434 180.272 93.6082C185.938 92.6316 206.575 94.8808 207.596 96.1458C209.406 98.4051 205.373 119.885 204.255 125.53C203.98 126.916 203.836 130.15 202.61 131.133C201.167 132.291 198.577 132.379 196.824 132.517L196.676 132.489C197.498 128.609 198.494 119.448 195.024 117.512C194.018 116.949 193.603 117.798 193.612 118.702C193.76 120.447 194.133 122.166 194.72 123.815C194.766 124.009 195.219 126.598 195.2 126.592C194.863 126.482 194.664 125.161 194.586 124.894Z\"\n fill=\"white\"\n />\n <path\n d=\"M195.16 52.0874L186.134 38.0459C187.304 37.0937 188.266 35.9099 188.957 34.5687C189.649 33.2276 190.056 31.758 190.153 30.2521C190.25 28.7463 190.035 27.2366 189.521 25.8178C189.007 24.399 188.206 23.1016 187.167 22.007C186.154 21.0446 184.96 20.2919 183.655 19.7922C182.35 19.2925 180.959 19.0556 179.562 19.0951C178.165 19.1346 176.789 19.4497 175.514 20.0223C174.239 20.595 173.09 21.4139 172.133 22.432C167.775 26.9455 167.942 33.9789 172.049 37.7992C173.62 39.256 175.599 40.1986 177.72 40.5011C179.841 40.8035 182.004 40.4514 183.92 39.4918L192.99 53.5434L195.16 52.0874ZM174.182 35.3641C172.778 33.8937 172.014 31.9266 172.058 29.894C172.102 27.8613 172.95 25.929 174.416 24.5205C175.088 23.8113 175.895 23.2427 176.789 22.848C177.683 22.4533 178.646 22.2403 179.623 22.2213C180.6 22.2024 181.571 22.3779 182.48 22.7376C183.388 23.0974 184.216 23.6342 184.916 24.3169C186.302 25.77 187.064 27.7087 187.038 29.7171C187.012 31.7255 186.2 33.6437 184.776 35.0605C184.11 35.791 183.303 36.3799 182.404 36.7921C181.505 37.2042 180.532 37.4312 179.544 37.4596C178.555 37.4879 177.571 37.317 176.65 36.957C175.729 36.597 174.889 36.0553 174.182 35.3641Z\"\n fill=\"#6CD0E6\"\n />\n <path\n d=\"M184.916 24.3167C186.302 25.7699 187.064 27.7086 187.038 29.717C187.012 31.7254 186.2 33.6436 184.777 35.0604C183.428 36.4923 181.569 37.3358 179.603 37.4084C177.637 37.4811 175.722 36.7771 174.271 35.4487C172.845 34.0048 172.049 32.0545 172.058 30.025C172.067 27.9955 172.881 26.0525 174.32 24.6216C174.994 23.9036 175.804 23.326 176.702 22.9218C177.601 22.5177 178.57 22.2951 179.555 22.2668C180.539 22.2384 181.52 22.405 182.44 22.7568C183.36 23.1086 184.201 23.6387 184.916 24.3167Z\"\n fill=\"white\"\n />\n <path\n d=\"M127.215 42.185L127.15 42.5999C125.964 43.803 124.957 45.1705 124.16 46.6606C123.349 48.7228 122.951 50.9242 122.989 53.1399C121.894 53.4577 120.948 54.1532 120.318 55.1027C119.687 56.0523 119.414 57.1945 119.547 58.3264C118.598 58.2684 117.664 58.0658 116.777 57.7255C115.917 57.4641 115.154 56.9507 114.588 56.2517C114.023 55.5527 113.679 54.7002 113.602 53.804C113.632 52.9035 113.853 52.0196 114.251 51.2112C114.648 50.4029 115.214 49.6886 115.91 49.1159C116.5 48.5619 118.046 47.7675 118.116 46.8541C118.185 45.9408 116.683 44.7428 116.242 44.0205C112.675 38.1712 117.085 32.0979 124.825 32.6229C126.071 32.7076 127.751 33.4198 128.978 32.9467C130.095 32.5153 130.697 30.8759 131.322 29.9563C132.347 28.4084 133.822 27.2129 135.549 26.5319C136.788 26.1933 138.098 26.2084 139.33 26.5754C140.561 26.9425 141.666 27.6469 142.518 28.609C143.277 29.3592 144.124 31.029 145.268 31.22C146.385 31.4072 147.64 30.5129 148.609 30.1043C150.538 29.086 152.787 28.8544 154.884 29.4578C155.843 29.8408 156.683 30.4731 157.316 31.2893C157.948 32.1056 158.351 33.0761 158.483 34.1004C158.617 35.0251 158.343 36.4925 159.018 37.2629C159.617 37.9384 160.946 38.0029 161.741 38.3799C165.348 40.0851 166.704 44.19 164.546 48.8085C164.209 49.5309 162.979 50.8566 163.236 51.7181C163.504 52.6124 164.997 53.2601 165.608 53.9229C166.508 54.8813 167.077 56.1031 167.232 57.4089C167.387 58.7147 167.118 60.0356 166.467 61.1777C165.299 63.1407 163.6 64.7338 161.566 65.7735C160.827 66.1618 158.567 66.7336 158.234 67.6014C158.068 68.034 158.993 68.7816 159.203 69.1055C159.56 69.5741 159.764 70.1414 159.786 70.73C159.809 71.3186 159.649 71.8998 159.33 72.3945C156.635 76.5285 152.275 73.5039 151.098 69.9404C150.988 69.611 150.907 69.2723 150.858 68.9284C150.387 69.2509 149.523 68.874 149.105 68.6513C148.406 68.2728 147.79 67.7577 147.294 67.1366C146.798 66.5155 146.432 65.801 146.218 65.0357C146.003 64.2704 145.945 63.4698 146.046 62.6814C146.147 61.8931 146.405 61.1331 146.806 60.4466C146.982 60.0961 148.051 59.2018 148.033 58.7742C148.033 58.6275 147.664 58.6275 147.58 58.6174C146.788 58.5459 146.05 58.1802 145.514 57.5922C144.978 57.0043 144.681 56.2368 144.682 55.4409C144.668 53.8552 145.093 52.2964 145.91 50.9375C146.796 49.4309 147.244 49.1058 147.092 48.9806C146.94 48.8554 146.545 49.0666 145.126 49.0843C143.799 49.2121 142.466 48.9303 141.304 48.2769C140.142 47.6235 139.209 46.6298 138.629 45.4297C138.398 45.0325 138.056 44.0458 137.503 44.018C136.95 43.9902 136.365 44.5885 135.943 44.8478C135.458 45.2394 134.891 45.5179 134.284 45.6632C133.677 45.8085 133.046 45.8169 132.436 45.6878C131.963 45.4662 131.549 45.1358 131.228 44.7236C130.907 44.3113 130.688 43.8289 130.59 43.3159C130.508 43.03 130.48 41.9598 130.175 41.8118C129.87 41.6638 128.966 42.1711 128.634 42.2268C128.163 42.305 127.681 42.2908 127.215 42.185Z\"\n fill=\"#EB7F64\"\n />\n <path\n d=\"M130.502 197.213H164.676L190.102 219.704L154.204 228.13C133.273 200.9 138.644 207.918 130.502 197.213ZM135.476 199.64L145.988 212.395L172.863 207.679L164.134 199.64H135.476Z\"\n fill=\"white\"\n />\n <path\n d=\"M151.617 110.181C152.494 110.561 151.514 120.858 150.841 121.566C149.695 122.764 145.451 124.939 144.695 124.815C143.439 124.609 138.954 121.652 138.576 120.767C138.17 119.816 138.733 111.806 138.844 109.369C139.259 109.363 149.726 109.36 151.617 110.181Z\"\n fill=\"#E3E5ED\"\n />\n <path\n d=\"M172.863 207.679L164.134 199.64H135.482L145.994 212.395C145.994 212.395 149.144 211.838 172.863 207.679Z\"\n fill=\"#F5BF42\"\n />\n <path\n d=\"M139.093 208.472L133.196 208.725L137.035 217.501C145.789 216.429 145.103 216.549 145.23 216.458L139.093 208.472Z\"\n fill=\"#5BC6A7\"\n />\n <path\n d=\"M129.283 205.786L136.38 205.417L136.61 205.242L139.093 208.472L133.196 208.725L137.035 217.501C145.781 216.429 145.103 216.549 145.23 216.458L154.201 228.124L170.177 224.377C170.945 225.781 171.805 227.134 172.751 228.425L140.524 233.426C129.82 207.119 132.319 213.264 129.283 205.786Z\"\n fill=\"#6CD0E6\"\n />\n <path\n d=\"M192.197 173.005C191.542 176.008 190.545 179.355 188.21 181.48C184.731 184.655 179.275 185.402 174.864 186.381C166.252 188.3 157.229 190.935 148.414 191.623C143.154 192.033 138.05 189.703 132.762 189.703C128.369 189.703 124.003 190.353 119.638 190.736C117.102 190.96 113.547 191.479 111.342 189.86C109.255 188.328 107.032 184.332 109.035 182.209L108.923 182.098C105.02 181.465 100.992 181.106 97.5169 179.891C92.5138 178.143 88.3849 175.387 83.4893 173.154C78.9353 171.078 73.8083 170.155 73.8538 164.183C73.9095 157.041 77.4806 146.068 85.722 145.117C90.3912 144.576 99.4182 147.014 103.938 149.749L104.057 149.623C105.137 150.635 106.829 150.191 114.855 152.179C125.41 154.795 135.073 157.106 145.721 153.047C147.892 152.22 151.618 151.182 153.262 149.378L153.354 149.471C154.719 149.452 155.33 151.803 156.04 152.728C156.749 153.653 158.217 153.76 159.297 153.854C167.125 154.531 192.06 150.804 192.798 166.553C192.881 168.721 192.679 170.89 192.197 173.005Z\"\n fill=\"#6CD0E6\"\n />\n <path\n d=\"M138.844 109.363C138.733 111.799 138.17 119.809 138.576 120.761C138.955 121.646 143.439 124.596 144.695 124.809C145.454 124.935 149.695 122.758 150.841 121.56C151.514 120.858 152.494 110.555 151.617 110.175C149.726 109.36 139.259 109.363 138.844 109.363ZM109.69 114.457C107.124 111.083 107.176 110.1 100.783 101.711C99.7354 100.337 97.6204 98.6395 97.3142 96.8482C97.0486 95.3062 98.263 93.5061 98.8082 92.15C100.109 88.9192 101.027 85.4974 102.51 82.34C105.599 75.762 112.359 75.28 118.743 74.163C120.313 73.8885 121.878 73.5874 123.459 73.3787C123.616 73.3585 124.799 73.0536 124.922 73.2269C126.136 74.8887 127.868 76.1006 129.845 76.6728L129.836 76.7107C129.662 76.6917 129.963 77.891 130.003 77.9934C130.414 79.1868 131.005 80.3101 131.756 81.3242C133.945 84.2628 136.666 86.7257 140.533 86.5296C144.104 86.3487 147.275 84.2387 149.974 82.0629C150.51 81.6303 151.247 80.7612 152.032 80.0604C152.517 79.5409 153.142 79.1724 153.832 78.9991C154.827 79.0999 155.78 79.4526 156.601 80.0237C158.671 81.0357 160.649 82.2198 162.645 83.3823C164.535 84.3125 166.304 85.4687 167.915 86.8257C170.601 89.4278 170.352 93.5732 170.74 97.0228C171.043 99.6356 171.545 102.221 172.244 104.757C172.637 106.204 173.468 108.143 173.112 109.677C172.823 110.913 170.99 111.793 169.677 112.436C168.817 112.857 158.711 118.652 154.571 121.397C153.699 127.657 153.36 133.98 153.559 140.297C153.626 142.273 154.805 147.662 153.283 149.351C153.271 149.362 153.262 149.375 153.255 149.389C151.611 151.188 147.885 152.225 145.714 153.057C132.016 158.278 120.288 152.892 107.027 150.565C105.967 150.528 104.937 150.206 104.045 149.633C101.666 147.356 104.164 140.966 104.885 138.42C107.302 130.618 108.912 122.588 109.69 114.457Z\"\n fill=\"#B6688A\"\n />\n <path\n d=\"M131.267 71.634C130.233 71.7605 128.61 71.7264 128.212 69.1977C129.096 69.048 130.005 69.1734 130.815 69.5569C131.674 69.9769 132.78 71.4544 131.267 71.634Z\"\n fill=\"white\"\n />\n <path\n d=\"M128.388 201.261C126.102 210.496 126.319 209.737 126.228 209.863C111.209 200.67 112.234 201.388 112.292 201.261H128.388Z\"\n fill=\"white\"\n />\n <path\n d=\"M124.761 215.682C124.856 215.809 125.014 214.923 120.995 231.192L103.94 230.23L103.931 230.212L124.761 215.682Z\"\n fill=\"white\"\n />\n <path\n d=\"M123.219 57.3851C123.219 57.5255 123.3 57.4901 122.997 57.5116C121.966 58.1496 120.754 58.4347 119.546 58.3237C119.412 57.1914 119.684 56.0481 120.314 55.0981C120.945 54.148 121.893 53.453 122.988 53.1372C122.988 54.5426 123.085 55.9442 123.219 57.3851Z\"\n fill=\"#EB7F64\"\n />\n <path\n d=\"M108.822 189.75C102.481 189.454 96.1287 189.496 89.7923 189.877C87.1889 189.973 84.0492 190.092 81.8924 188.359C81.5187 188.117 81.2017 187.797 80.9631 187.422C80.7244 187.046 80.5698 186.624 80.5097 186.183C80.4496 185.742 80.4856 185.293 80.6151 184.867C80.7445 184.442 80.9645 184.049 81.2599 183.716C82.3769 182.488 84.1137 182.27 85.5432 181.593C87.9353 180.462 89.7328 178.557 92.464 178.151L92.6208 177.817C99.1115 181.079 102.156 181.006 108.919 182.11L109.03 182.221C107.028 184.344 109.224 188.376 111.338 189.872L110.553 189.891C109.985 189.767 109.403 189.72 108.822 189.75Z\"\n fill=\"white\"\n />\n <path\n d=\"M102.989 198.255C102.989 198.255 90.4728 203.948 90.0566 204.134C90.0566 204.268 100.38 212.922 102.232 214.489L115.503 206.921L102.989 198.255Z\"\n fill=\"#B6688A\"\n />\n <path\n d=\"M94.1478 229.69L77.3145 228.749C83.9987 218.685 83.2916 219.72 83.5129 219.482L94.1478 229.69Z\"\n fill=\"white\"\n />\n <path\n d=\"M88.0114 48.9553C87.8733 48.7518 87.7615 48.5316 87.6787 48.3C87.6509 48.2456 87.494 47.4524 88.482 47.1008C89.47 46.7491 90.3124 48.6188 89.5243 49.2601C89.4108 49.3556 89.2773 49.4242 89.1336 49.4609C88.9899 49.4976 88.8398 49.5015 88.6944 49.4722C88.5491 49.4429 88.4122 49.3812 88.2939 49.2917C88.1757 49.2022 88.0791 49.0872 88.0114 48.9553Z\"\n fill=\"#5BC6A7\"\n />\n <path\n d=\"M84.3836 42.0737C84.734 39.0908 91.2222 41.3527 86.2811 33.5185C85.9949 33.0475 85.6368 32.6241 85.2198 32.2636C84.2356 31.4363 82.0826 31.4047 82.4368 33.325C82.7353 34.9581 85.4298 36.8847 83.4146 37.7828C81.6828 38.5532 80.4166 36.5178 79.779 34.7468C79.7221 34.5912 79.5753 34.194 79.5753 34.1662C79.5753 34.1662 79.5855 34.1662 79.5943 34.194C78.8745 27.6413 86.4848 27.6337 88.8288 31.3883C90.6529 34.3053 92.1747 37.3338 89.9357 40.266C89.2248 41.1971 88.1837 41.4665 87.6751 42.5C87.2336 43.3956 88.5164 44.7441 87.5486 45.4525C85.8067 46.7453 84.2154 43.5158 84.3836 42.0737Z\"\n fill=\"#5BC6A7\"\n />\n <path\n d=\"M84.1983 55.7101C84.0959 55.6248 84.0113 55.52 83.9494 55.4019C83.8876 55.2837 83.8497 55.1545 83.8379 55.0217C83.8262 54.8889 83.8408 54.755 83.8809 54.6278C83.9211 54.5007 83.986 54.3827 84.0718 54.2807C84.6436 53.3762 86.4753 54.3325 86.2489 55.323C86.2154 55.4671 86.1507 55.602 86.0594 55.7183C85.9681 55.8346 85.8524 55.9295 85.7205 55.9963C85.5886 56.0632 85.4436 56.1002 85.2958 56.105C85.148 56.1097 85.0009 56.082 84.865 56.0238C84.6311 55.9461 84.4073 55.8408 84.1983 55.7101Z\"\n fill=\"#5BC6A7\"\n />\n <path\n d=\"M81.7815 200.95L71.7311 204.706L86.4418 218.494L95.7167 212.939L81.7815 200.95Z\"\n fill=\"#F5BF42\"\n />\n <path\n d=\"M80.6086 51.1727C80.3974 49.7812 80.9881 49.3903 80.997 48.0102C81.0084 44.3189 77.8572 42.8819 74.6201 41.7257C70.4545 40.238 64.4862 44.9653 69.1098 49.6534C68.9339 49.5788 69.4412 49.8685 69.6082 49.976C71.1578 50.988 73.4766 51.766 74.3342 50.1025C74.4624 49.919 74.5288 49.6994 74.5238 49.4756C74.5188 49.2518 74.4427 49.0354 74.3064 48.8577C73.3918 47.9811 71.803 48.0987 70.8087 47.2132C69.3387 45.9154 71.0617 44.6099 72.3406 44.6478C72.8892 44.6714 73.4308 44.7802 73.9459 44.9704C82.6908 48.0696 76.1824 50.3175 77.7573 52.8766C78.5163 54.1062 81.7699 55.6596 82.3442 53.5509C82.6567 52.4099 80.8211 52.1417 80.6086 51.1727Z\"\n fill=\"#5BC6A7\"\n />\n <path\n d=\"M54.5471 192.902L21.5989 218.282L64.5595 229.136L78.2557 214.434L73.3703 209.746L73.2438 209.872L55.091 205.657L66.3963 196.752C82.7148 198.454 81.508 198.286 81.551 198.413L88.5503 195.663C88.4895 195.536 90.9904 195.727 54.5471 192.902ZM73.6233 212.305L63.4716 223.405L31.1193 215.763L43.4037 206.119C72.6884 212.1 73.474 212.275 73.6233 212.305Z\"\n fill=\"white\"\n />\n <path\n d=\"M97.3511 192.201L67.3706 203.987C87.0806 222.9 82.2432 218.251 98.5832 233.944L129.897 212.108C126.544 210.059 141.98 219.502 97.3511 192.201ZM86.4417 218.494L71.726 204.706L81.7764 200.95L95.7117 212.938L86.4417 218.494ZM90.0571 204.134C90.4733 203.949 102.989 198.255 102.989 198.255L115.504 206.921L102.233 214.489C99.9633 212.568 90.0571 204.262 90.0571 204.134Z\"\n fill=\"white\"\n />\n <path\n d=\"M82.5097 124.046C82.1593 124.099 81.5672 124.251 80.8955 124.404C76.7678 125.346 77.2612 124.392 77.3978 122.807C77.3221 121.091 76.8548 119.415 76.0316 117.908L75.7457 117.722C76.6855 116.013 77.5355 114.256 78.2921 112.458C79.0923 111.174 80.0201 109.975 81.0612 108.877C81.6052 108.213 83.5179 106.181 82.8879 105.186C82.5388 104.632 81.6229 105.038 81.2092 105.25C79.7647 106.039 78.4609 107.062 77.351 108.278C77.2068 108.428 76.2808 109.618 76.0683 109.597C75.8279 109.573 76.3554 109.191 76.511 108.997C78.0443 107.197 79.4466 105.289 80.707 103.288C80.9373 102.896 81.4901 101.972 81.0119 101.553C80.4464 101.058 79.1688 101.798 78.6679 102.079C76.5896 103.427 74.7908 105.163 73.37 107.192C73.4523 107.054 73.766 106.647 73.8862 106.472C76.5427 102.6 79.633 99.1151 78.5464 98.4713C78.0202 98.1575 77.1258 98.766 76.7198 99.043C75.1356 100.147 73.7105 101.464 72.4845 102.956C72.358 103.106 71.2942 104.646 71.0817 104.571C70.8691 104.496 72.1506 102.531 72.2265 102.421C73.9545 99.9159 77.4712 96.5231 76.1113 95.6566C75.1246 95.0241 73.4029 96.5421 72.7983 97.1506C70.6666 99.3288 69.1424 102.027 68.3771 104.977L68.1013 104.895C66.4998 101.018 62.4303 95.8236 59.5638 92.7319C59.0578 92.1804 56.9364 90.6004 57.321 89.658C57.9535 88.1096 62.8769 87.7453 64.2064 87.4341C69.3258 86.2349 74.4693 85.085 79.6647 84.2324C81.7317 83.8921 84.5982 83.1584 86.5033 84.3981C88.7803 85.8807 89.8365 89.6567 90.9055 91.9881C93.9928 98.5182 96.5393 105.291 98.5195 112.237C99.0369 114.239 101.38 119.608 100.015 121.598C99.2393 122.736 96.4727 122.566 95.29 122.677C91.333 123.062 86.435 123.455 82.5097 124.046Z\"\n fill=\"white\"\n />\n <path\n d=\"M99.9352 100.724L99.7973 100.844C99.8251 100.844 99.7417 101.028 99.7227 101.097C99.1521 103.356 98.3571 105.551 97.3495 107.651L97.1838 107.707C97.6745 109.203 98.1179 110.714 98.5133 112.238C99.0295 114.239 101.371 119.609 100.009 121.599C99.2344 122.738 96.4666 122.568 95.2838 122.678C92.9663 122.9 90.6412 123.102 88.3263 123.334C87.8855 123.983 87.4047 124.605 86.8867 125.196C86.7741 125.322 86.4629 125.818 86.2681 125.842L86.2137 125.969C84.4918 125.328 82.7198 124.831 80.9159 124.482L80.8982 124.39C79.6522 124.686 78.157 124.972 77.5472 124.538C77.1513 124.261 77.3537 123.33 77.4005 122.793L77.2436 122.783C76.4357 122.282 75.6999 121.674 75.0564 120.974C74.6463 120.582 74.2837 120.142 73.9761 119.665C76.4391 117.657 76.8958 115.158 78.2948 112.439C79.095 111.155 80.0227 109.956 81.0639 108.858C81.6091 108.194 83.5193 106.164 82.8906 105.167C82.5402 104.613 81.6256 105.019 81.2119 105.231C79.7671 106.02 78.4633 107.043 77.3537 108.259C77.2095 108.409 76.2835 109.597 76.071 109.578C75.8306 109.55 76.3569 109.172 76.5137 108.978C78.0468 107.185 79.4483 105.284 80.7072 103.288C80.9374 102.896 81.4928 101.969 81.0121 101.553C80.4491 101.054 79.1664 101.793 78.668 102.079C76.5831 103.419 74.7828 105.156 73.3702 107.192C73.916 106.421 74.4641 105.652 75.0147 104.885C76.095 103.381 77.2575 101.922 78.1987 100.331C78.4201 99.9614 79.1588 98.8254 78.5491 98.4661C78.0241 98.1524 77.1285 98.7609 76.7225 99.0379C75.137 100.143 73.7111 101.462 72.4847 102.956C72.3582 103.106 71.2842 104.644 71.0818 104.571C70.8794 104.498 72.1507 102.531 72.2266 102.421C73.9483 99.9196 77.4713 96.5282 76.1115 95.6566C75.1235 95.0241 73.4031 96.5421 72.7984 97.1506C70.6916 99.3473 69.1713 102.039 68.3772 104.977C67.0579 109.487 67.4222 108.972 67.1401 115.983C67.0427 117.564 67.1421 119.151 67.4361 120.707C68.6429 126.413 73.1855 131.247 78.0494 134.173C80.5592 135.691 82.9032 137.283 85.9772 136.822C88.9031 136.378 91.2472 133.933 93.2585 131.986C100.332 124.978 104.45 117.771 108.059 112.146C105.583 108.179 102.87 104.365 99.9352 100.724Z\"\n fill=\"#BD6245\"\n fillOpacity=\"0.4\"\n />\n <path\n d=\"M81.5233 198.329C68.2864 196.949 66.3509 196.787 66.3509 196.787L55.0924 205.657L73.2363 209.875L73.3628 209.748C68.6823 205.254 67.645 204.283 67.3781 203.984C67.3794 203.981 81.5663 198.458 81.5233 198.329Z\"\n fill=\"#6CD0E6\"\n />\n <path\n d=\"M76.077 177.416C75.2952 176.634 64.7476 173.287 61.6345 171.898V189.036C61.5991 189.177 72.5843 185.274 75.1826 184.855L75.2105 184.836C73.6229 182.955 74.7171 179.465 76.077 177.416Z\"\n fill=\"white\"\n />\n <path\n d=\"M6.35303 190.678V173.458L61.6335 171.823V189.036C44.6623 189.537 55.9031 189.203 6.35303 190.678ZM31.8807 187.278L32.0654 177.006H9.4877L9.30301 187.278H31.8807ZM43.6098 182.354C43.7751 181.289 43.5159 180.201 42.888 179.324C42.26 178.447 41.3134 177.852 40.2512 177.665C39.2034 177.779 38.2288 178.257 37.4969 179.016C36.765 179.775 36.3221 180.766 36.2452 181.817C36.1684 182.868 36.4624 183.913 37.0762 184.77C37.69 185.627 38.5847 186.242 39.6048 186.507C40.6833 186.478 41.707 186.026 42.4559 185.249C43.2048 184.473 43.6192 183.433 43.6098 182.354Z\"\n fill=\"#F5BF42\"\n />\n <path\n d=\"M43.4075 206.119L31.123 215.763L63.4716 223.405L73.5866 212.283L43.4075 206.119Z\"\n fill=\"#5BC6A7\"\n />\n <path\n d=\"M48.8152 189.415L30.2931 198.449L17.7228 190.337L48.8152 189.415Z\"\n fill=\"white\"\n />\n <path\n d=\"M40.251 177.665C41.2711 177.931 42.1658 178.545 42.7796 179.402C43.3934 180.259 43.6874 181.304 43.6106 182.355C43.5337 183.407 43.0908 184.398 42.3589 185.156C41.627 185.915 40.6524 186.393 39.6046 186.507C37.5743 186.368 36.0702 184.256 36.2447 181.818C36.2341 180.739 36.6481 179.698 37.3976 178.921C38.1471 178.144 39.1719 177.693 40.251 177.665Z\"\n fill=\"#5BC6A7\"\n />\n <path\n d=\"M34.7229 208.177L21.5986 218.282L56.4012 227.077L49.378 233.916L9.54565 221.152L31.4302 207.707C35.024 208.147 34.6281 208.051 34.7229 208.177Z\"\n fill=\"white\"\n />\n <path\n d=\"M32.0654 177.006L31.8807 187.278H9.30554L9.49023 177.006H32.0654Z\"\n fill=\"#5BC6A7\"\n />\n <path\n d=\"M59.0948 93.1619C62.2105 96.5217 66.0207 101.527 67.5096 105.136C67.6361 105.45 67.688 105.01 67.3363 106.298C66.4812 109.445 66.7215 110.513 66.5027 115.951C66.3986 117.585 66.5023 119.226 66.8113 120.834C67.9207 126.078 71.9978 131.261 77.7169 134.71C80.0154 136.101 82.1899 137.529 84.9033 137.529C88.396 137.529 90.9235 135.155 93.4054 132.722C99.1207 126.921 104.023 120.371 107.979 113.253C108.876 114.786 108.763 114.802 109.004 114.959C108.461 121.422 107.325 127.513 104.282 138.241C103.556 140.804 101.782 145.22 102.65 148.337C97.6179 145.853 89.7787 144.025 85.6497 144.494C77.1742 145.473 73.2805 156.598 73.2211 164.184C73.1793 169.615 77.1603 171.235 81.0109 172.8C84.4873 174.286 87.8834 175.953 91.1853 177.794C89.9092 178.249 88.7016 178.877 87.5965 179.66C86.4796 180.475 85.2417 181.109 83.928 181.54C82.7525 181.843 81.675 182.444 80.7997 183.286C80.4444 183.681 80.1784 184.149 80.0196 184.657C79.8607 185.164 79.8129 185.7 79.8792 186.228C79.9456 186.756 80.1245 187.263 80.404 187.716C80.6835 188.169 81.057 188.556 81.4992 188.852C85.7205 192.253 92.7577 189.344 108.86 190.383C109.337 190.359 109.816 190.392 110.286 190.481C110.4 190.553 110.534 190.587 110.669 190.577C110.804 190.568 110.932 190.515 111.034 190.428C113.233 191.994 116.426 191.693 118.995 191.44C132.098 190.189 132.55 189.809 139.868 191.313C142.676 192.031 145.572 192.348 148.47 192.256C157.331 191.567 166.381 188.932 175.009 187.001C175.173 186.964 175.315 186.864 175.405 186.722C175.495 186.58 175.525 186.409 175.488 186.245C175.451 186.081 175.351 185.939 175.209 185.849C175.068 185.759 174.896 185.729 174.732 185.766C166.113 187.7 157.098 190.32 148.371 190.996C143.354 191.395 138.051 189.073 132.767 189.073C128.817 189.073 125.567 189.538 118.877 190.175C116.498 190.401 113.534 190.681 111.723 189.352C109.825 187.961 107.893 184.397 109.506 182.639C111.49 180.473 119.573 178.62 136.088 172.832C144.858 169.759 153.688 163.908 163.032 164.221C163.2 164.226 163.363 164.165 163.486 164.05C163.608 163.936 163.68 163.777 163.686 163.609C163.691 163.441 163.63 163.278 163.515 163.156C163.4 163.033 163.242 162.961 163.074 162.956C154.782 162.703 147.036 166.975 139.532 170.135C133.037 168.504 126.519 164.853 120.216 161.323C113.849 157.755 103.283 151.673 95.5559 152.121C95.4729 152.125 95.3915 152.146 95.3165 152.182C95.2415 152.218 95.1742 152.268 95.1187 152.33C95.0631 152.392 95.0203 152.465 94.9926 152.543C94.965 152.621 94.9531 152.705 94.9576 152.788C94.9621 152.871 94.9829 152.952 95.0188 153.027C95.0547 153.102 95.1051 153.169 95.167 153.225C95.2289 153.28 95.3011 153.323 95.3796 153.351C95.458 153.379 95.5412 153.39 95.6242 153.386C103.088 153.006 113.587 159.063 119.597 162.429C125.458 165.711 131.501 169.097 137.61 170.92C136.964 171.173 136.321 171.415 135.673 171.641C118.521 177.65 111.63 179.111 108.919 181.459C102.088 180.348 99.4319 180.472 92.9171 177.243C89.8811 175.741 86.7806 173.96 83.7623 172.584C79.097 170.455 74.4557 169.674 74.4975 164.193C74.5531 157.071 78.0977 146.641 85.8066 145.75C90.1835 145.237 99.0056 147.495 103.614 150.296C103.731 150.365 103.868 150.395 104.004 150.382C104.746 150.785 105.565 151.029 106.407 151.099C119.195 153.076 131.581 159.121 145.955 153.642C148.251 152.769 151.977 151.744 153.737 149.814C155.559 147.929 154.275 142.312 154.206 140.276C153.617 122.746 157.732 112.391 156.357 104.35C156.346 104.265 156.318 104.184 156.275 104.11C156.232 104.037 156.174 103.973 156.105 103.922C156.037 103.872 155.959 103.836 155.876 103.816C155.793 103.796 155.707 103.793 155.623 103.808C155.539 103.822 155.459 103.853 155.388 103.899C155.316 103.945 155.254 104.005 155.206 104.076C155.159 104.146 155.126 104.226 155.109 104.309C155.093 104.393 155.093 104.479 155.111 104.562C156.432 112.294 152.352 122.733 152.943 140.321C153.002 142.119 154.081 147.539 152.878 148.881C152.843 148.913 152.811 148.948 152.783 148.986C151.244 150.646 147.617 151.654 145.504 152.465C132.003 157.61 120.489 152.277 107.151 149.935C106.174 149.76 104.838 149.696 104.329 148.974C102.621 146.56 104.773 141.181 105.509 138.585C109.996 122.773 110.386 116.612 110.784 105.265C110.787 105.182 110.774 105.099 110.745 105.022C110.716 104.944 110.672 104.872 110.615 104.811C110.558 104.75 110.49 104.701 110.415 104.667C110.339 104.632 110.257 104.613 110.174 104.61C110.008 104.609 109.848 104.672 109.726 104.786C109.604 104.899 109.531 105.055 109.52 105.221C109.423 108.004 109.327 110.446 109.176 112.774C106.526 108.35 103.55 104.128 100.273 100.146C97.4572 97.1099 97.4129 96.5432 98.8816 93.5186C100.281 90.6331 101.429 86.1437 103.09 82.6067C105.747 76.9484 111.236 76.0452 117.046 75.0888C119.744 74.6423 121.743 74.2425 123.55 74.0022C123.573 74.0022 124.298 73.8428 124.58 73.8112C125.761 75.2548 127.292 76.3724 129.027 77.0577C130.761 77.743 132.643 77.9731 134.491 77.7263C134.54 77.7695 134.595 77.8049 134.655 77.8313C135.458 79.2602 135.923 80.8539 136.014 82.4903C136.021 82.5734 136.044 82.6543 136.082 82.7284C136.12 82.8026 136.173 82.8685 136.236 82.9224C136.3 82.9763 136.373 83.0172 136.453 83.0427C136.532 83.0682 136.616 83.0778 136.699 83.071C136.782 83.0641 136.863 83.041 136.937 83.003C137.011 82.9649 137.077 82.9126 137.131 82.849C137.185 82.7855 137.226 82.7119 137.251 82.6326C137.277 82.5532 137.286 82.4697 137.279 82.3866C137.172 80.6939 136.725 79.0402 135.965 77.5239C137.812 77.1662 139.597 76.5428 141.265 75.6732C141.339 75.6354 141.405 75.5833 141.459 75.52C141.513 75.4567 141.554 75.3835 141.579 75.3044C141.604 75.2254 141.614 75.1421 141.607 75.0593C141.601 74.9765 141.578 74.8958 141.54 74.8219C141.502 74.748 141.45 74.6822 141.387 74.6284C141.323 74.5746 141.25 74.5338 141.171 74.5083C141.092 74.4828 141.009 74.4732 140.926 74.4799C140.843 74.4866 140.763 74.5095 140.689 74.5474C137.467 76.4036 133.653 76.9472 130.041 76.0654C128.203 75.5327 126.592 74.4092 125.457 72.8687C124.126 71.0741 123.297 68.958 123.053 66.7373C122.931 65.8197 122.935 64.8897 123.066 63.9733C123.977 64.2845 124.963 64.3062 125.887 64.0352C125.758 64.3209 125.721 64.6394 125.781 64.9469C125.84 65.2545 125.994 65.5361 126.22 65.7531C126.47 65.9483 126.76 66.0863 127.069 66.1573C127.378 66.2283 127.699 66.2307 128.009 66.1642C128.221 66.1167 128.441 66.1146 128.654 66.1583C128.867 66.2019 129.068 66.2901 129.244 66.4172C129.741 66.7437 130.34 66.8753 130.928 66.7866C131.091 66.7565 131.236 66.6634 131.331 66.5273C131.426 66.3913 131.464 66.2233 131.437 66.0596C131.409 65.8959 131.318 65.7496 131.184 65.6522C131.049 65.5549 130.882 65.5143 130.718 65.5393C130.407 65.5797 130.093 65.4951 129.845 65.304C129.614 65.172 129.372 65.0607 129.121 64.9713C128.236 64.6753 127.396 65.1725 127.033 64.707C127.023 64.1061 127.987 62.7728 129.816 60.9727C129.878 60.9084 129.925 60.8313 129.954 60.7467C129.983 60.6621 129.993 60.5722 129.983 60.4834C129.973 60.3946 129.943 60.3091 129.897 60.2329C129.85 60.1568 129.787 60.0919 129.712 60.0429C129.791 59.6442 129.828 59.2386 129.825 58.8323C130.016 58.6919 130.126 58.3605 130.524 58.3567C130.932 58.3992 131.306 58.6005 131.565 58.9171C131.649 59.0251 131.765 59.1032 131.897 59.1397C131.837 60.3833 132.178 61.6133 132.87 62.6488C133.479 63.4014 134.254 64.0026 135.135 64.4051C136.015 64.8077 136.977 65.0006 137.945 64.9688C139.158 65.0361 140.356 64.6774 141.333 63.9546C142.31 63.2318 143.003 62.1905 143.293 61.0106C144.516 60.9425 145.742 60.9666 146.962 61.0827C147.119 61.0829 147.27 61.0248 147.386 60.9196C147.503 60.8145 147.576 60.6699 147.592 60.5138C147.607 60.3577 147.565 60.2014 147.472 60.0751C147.379 59.9488 147.242 59.8616 147.088 59.8304C145.864 59.7074 144.633 59.677 143.405 59.7393C143.355 58.8184 143.117 57.9174 142.705 57.0924C142.293 56.2674 141.715 55.536 141.009 54.9437C140.299 54.3518 139.452 53.947 138.545 53.7661C137.639 53.5852 136.701 53.634 135.819 53.908C134.936 54.182 134.136 54.6725 133.491 55.3348C132.846 55.9971 132.377 56.8103 132.127 57.7001C131.799 57.39 131.384 57.1875 130.937 57.1197C130.491 57.0519 130.034 57.122 129.629 57.3206C129.241 55.8688 128.389 54.5838 127.202 53.6622C126.225 52.7904 124.943 52.3394 123.635 52.4074C123.687 50.5384 124.055 48.6918 124.726 46.9464C125.494 45.5109 126.465 44.1933 127.608 43.0337C127.715 42.9123 127.772 42.7546 127.766 42.593C127.76 42.4314 127.692 42.2782 127.577 42.1649C127.462 42.0515 127.307 41.9866 127.146 41.9835C126.984 41.9804 126.827 42.0394 126.708 42.1482C125.46 43.4134 124.403 44.8543 123.572 46.4252C122.802 48.4125 122.39 50.5205 122.355 52.6515C118.332 53.9633 117.39 60.7146 121.863 63.4167C121.394 66.6283 122.075 69.9023 123.784 72.6613L123.377 72.7473C122.139 72.9117 120.899 73.1357 119.697 73.3482C112.201 74.6688 105.199 75.1192 101.937 82.0666C100.439 85.2569 99.5204 88.68 98.2225 91.9095C97.6634 93.301 96.3845 95.1694 96.6906 96.9518C97.1435 98.4375 97.9944 99.7709 99.151 100.808C98.6887 102.639 98.0791 104.431 97.3282 106.165C95.542 100.95 93.2802 95.6855 91.475 91.7261C90.3669 89.3074 89.3245 85.4795 86.8426 83.8641C84.7984 82.5359 81.9888 83.1911 79.5562 83.6035C71.6993 84.9368 64.9657 86.6952 62.8392 87.019C59.9525 87.4643 57.3137 87.9804 56.7293 89.4111C56.1448 90.8419 58.4282 92.4396 59.0948 93.1619ZM108.014 182.597C107.002 184.659 108.164 187.37 109.648 189.121C93.3624 188.038 86.0216 190.869 82.2899 187.856C81.9844 187.668 81.7237 187.416 81.526 187.116C81.3283 186.817 81.1984 186.478 81.1454 186.123C81.0924 185.769 81.1175 185.407 81.2191 185.063C81.3206 184.719 81.4961 184.401 81.7333 184.132C82.7073 183.059 84.3733 182.839 85.8179 182.156C88.229 181.017 90.0139 179.145 92.5617 178.767C92.6741 178.75 92.7799 178.703 92.8678 178.63C98.9423 181.571 101.694 181.609 108.014 182.597ZM133.205 58.6856C133.299 57.9221 133.597 57.1982 134.068 56.5898C134.538 55.9815 135.164 55.5113 135.88 55.2287C136.595 54.9461 137.374 54.8615 138.133 54.9839C138.892 55.1062 139.605 55.431 140.195 55.9241C142 57.4193 142.9 60.2984 141.363 62.201C140.91 62.7225 140.34 63.1304 139.701 63.3921C139.061 63.6537 138.369 63.7618 137.68 63.7076C136.963 63.7025 136.256 63.5429 135.606 63.2397C134.957 62.9365 134.38 62.4967 133.916 61.9505C133.28 60.9889 133.026 59.8245 133.205 58.6856ZM126.381 54.6376C127.298 55.2897 127.976 56.2238 128.312 57.2973C128.648 58.3708 128.623 59.5248 128.242 60.5831C126.446 63.1561 124.622 63.2396 123.285 62.7196C124.297 57.6963 123.69 56.8931 123.62 53.6901C124.121 53.6555 124.623 53.7226 125.098 53.8871C125.572 54.0517 126.008 54.3104 126.38 54.6477L126.381 54.6376ZM122.363 54.0051C122.452 56.6869 122.948 57.981 122.125 62.0669C119.153 59.9101 119.838 55.2169 122.361 54.0152L122.363 54.0051ZM97.9177 107.932C98.8235 106.008 99.5735 104.014 100.161 101.97C101.786 103.994 105.041 108.49 107.231 112.012L107.218 112.032C103.318 119.152 98.4711 125.71 92.8096 131.528C90.8413 133.457 88.5883 135.782 85.8761 136.191C83.0628 136.611 80.8364 135.116 78.3696 133.625C72.9504 130.35 69.0871 125.48 68.0485 120.572C67.7624 119.066 67.6676 117.53 67.7664 116C67.9903 110.434 67.755 109.575 68.557 106.625C69.2574 103.242 70.8769 100.118 73.2375 97.5957C74.2736 96.5622 75.388 95.9512 75.7675 96.1865C76.2002 97.3819 68.6127 104.352 70.8517 105.168C71.4159 105.375 71.7904 104.938 72.815 103.555C74.08 101.845 77.2273 99.1529 78.1394 99.0176C77.8662 100.308 72.7088 106.662 72.6999 107.23C72.6164 107.499 72.7391 107.593 72.9529 107.755C73.0843 107.855 73.2496 107.899 73.4134 107.879C73.5771 107.859 73.7265 107.775 73.8295 107.646C75.21 105.646 76.969 103.935 79.0072 102.611C79.466 102.281 79.9982 102.066 80.5581 101.987C80.577 102.065 80.5492 102.295 80.1533 102.972C78.9121 104.945 77.5292 106.825 76.0155 108.597C75.8409 108.811 75.2122 109.184 75.407 109.764C75.4566 109.887 75.538 109.994 75.643 110.075C75.7479 110.156 75.8726 110.207 76.0041 110.224C76.4304 110.258 76.7428 109.985 77.6385 108.91C78.7326 107.658 80.0387 106.608 81.4967 105.809C81.7573 105.652 82.0491 105.553 82.3518 105.52C82.4455 105.669 82.472 106.219 80.7984 108.201C79.6486 109.42 78.6204 110.748 77.7283 112.166C76.2103 115.103 75.8599 117.528 73.1996 119.478C73.0934 119.557 73.0149 119.668 72.9753 119.795C72.9358 119.922 72.937 120.058 72.979 120.184C73.021 120.31 73.1015 120.419 73.2092 120.497C73.3169 120.574 73.4463 120.616 73.5791 120.616C74.0155 120.616 73.555 120.329 74.357 121.17C75.0531 121.952 75.8473 122.64 76.7201 123.217C76.6319 123.526 76.6219 123.852 76.691 124.166C76.7601 124.48 76.9062 124.771 77.116 125.015C77.8864 125.701 79.6346 125.326 80.7086 125.092C83.1323 125.552 85.4917 126.302 87.7357 127.327C87.8104 127.363 87.8916 127.384 87.9745 127.389C88.0574 127.394 88.1405 127.383 88.219 127.355C88.2974 127.328 88.3698 127.286 88.4318 127.23C88.4939 127.175 88.5445 127.108 88.5807 127.034C88.6169 126.959 88.6381 126.878 88.6429 126.795C88.6478 126.712 88.6362 126.629 88.609 126.55C88.5817 126.472 88.5393 126.399 88.4841 126.337C88.4289 126.275 88.362 126.225 88.2872 126.188C87.9542 126.025 87.6168 125.87 87.2752 125.725C87.5826 125.322 87.9811 124.945 88.6781 123.942C90.148 123.794 95.8456 123.285 96.1631 123.273C97.6659 123.217 99.7241 123.137 100.526 121.965C102.112 119.646 99.6735 114.222 99.1207 112.084C98.7619 110.688 98.3607 109.303 97.9177 107.932ZM75.7549 118.783C76.1642 119.689 76.4657 120.639 76.653 121.616C75.9841 121.065 75.3699 120.452 74.8188 119.784C75.1547 119.473 75.4676 119.139 75.7549 118.783ZM86.2733 124.964C86.2227 125.031 86.1215 125.168 86.0507 125.244C85.2926 124.966 84.5232 124.721 83.7446 124.509C84.7781 124.369 85.8647 124.24 86.9716 124.12C86.6149 124.562 86.4391 124.74 86.2733 124.964ZM57.9007 89.8982C58.3535 88.7888 63.2466 88.3081 64.3446 88.05C72.6936 86.0943 75.5095 85.6073 80.5619 84.7155C85.8357 83.7844 87.0589 84.2095 89.6079 90.5433C90.6819 93.2201 95.5243 103.206 97.9012 112.4C98.3731 114.229 100.626 119.588 99.4875 121.255C98.9347 122.061 96.2782 121.965 95.2245 122.062C91.0424 122.442 86.1544 122.86 82.4164 123.424C81.7839 123.518 78.4265 124.436 77.9636 124.084C77.9339 123.703 77.9513 123.321 78.0154 122.945C77.9821 121.079 77.4931 119.249 76.591 117.616C76.5139 117.468 76.5303 118.023 77.8484 114.944C78.1533 114.233 78.4683 113.498 78.8301 112.793C79.6861 111.447 80.6683 110.186 81.7636 109.026C82.6833 107.94 84.2329 106.131 83.4246 104.852C83.1716 104.441 82.4961 103.874 80.9186 104.691C80.7355 104.786 80.5549 104.885 80.3772 104.99C80.6896 104.528 80.9831 104.069 81.2627 103.598C81.5422 103.128 82.2911 101.841 81.4271 101.087C80.5631 100.333 79.1008 101.087 78.104 101.684C78.3367 101.333 78.567 100.972 78.7896 100.599C79.2321 100.037 79.445 99.328 79.3854 98.6153C79.3512 98.4738 79.2887 98.3407 79.2018 98.224C79.1148 98.1072 79.0052 98.0093 78.8794 97.936C77.9054 97.3566 76.6024 98.3319 75.6878 99.0201C76.6454 97.7361 77.1578 96.7874 77.03 96.0056C76.8327 94.7874 75.0528 94.0157 72.3495 96.7127C70.4486 98.6397 69.0224 100.983 68.1838 103.556C65.9567 99.4704 63.215 95.6868 60.0259 92.2979C59.683 91.9373 57.8108 90.37 57.9007 89.8982Z\"\n fill=\"#2E3847\"\n />\n <path\n d=\"M166.98 148.736C169.955 148.887 171.891 148.083 178.239 147.016C181.861 146.543 185.421 145.673 188.853 144.421C191.328 143.189 193.408 141.286 194.854 138.93C196.156 137.111 196.31 136.996 196.269 136.653C196.591 135.524 196.868 134.571 197.189 133.124C199.067 132.979 201.504 132.829 203.008 131.626C204.477 130.447 204.577 127.163 204.876 125.652C206.495 117.475 210.048 98.1943 208.09 95.7504C206.661 93.9667 185.067 92.1438 180.171 92.9838C177.333 93.4746 178.112 97.8591 178.631 100.53C181.256 114.056 180.264 123.214 177.296 131.991C176.77 133.124 176.31 134.286 175.916 135.471C175.343 135.347 174.759 135.275 174.173 135.259C172.38 135.006 167.738 134.358 166.878 134.219C166.794 134.201 166.707 134.201 166.623 134.218C166.54 134.234 166.46 134.268 166.389 134.316C166.319 134.365 166.259 134.427 166.213 134.499C166.167 134.571 166.136 134.652 166.123 134.737C166.109 134.821 166.113 134.907 166.133 134.99C166.154 135.073 166.191 135.151 166.243 135.22C166.294 135.288 166.359 135.345 166.434 135.387C166.508 135.43 166.59 135.457 166.675 135.466C167.604 135.617 172.652 136.325 174.068 136.518C174.589 136.533 175.108 136.594 175.619 136.701C175.583 136.918 175.603 137.14 175.677 137.347C175.751 137.554 175.876 137.739 176.04 137.885C176.7 138.383 177.787 138.125 178.586 137.938C179.267 137.776 179.376 137.823 181.428 137.306C182.503 137.004 183.604 136.8 184.717 136.696C184.873 137.537 185.194 138.339 185.662 139.056C185.755 139.191 185.898 139.283 186.059 139.315C186.219 139.347 186.386 139.314 186.524 139.225C186.661 139.136 186.759 138.997 186.796 138.838C186.833 138.678 186.807 138.51 186.723 138.369C185.242 136.082 186.113 133.895 185.883 130.988C185.633 129.582 185.208 128.212 184.618 126.911C183.872 124.818 184.178 124.496 184.19 124.484C184.67 124.212 185.875 125.416 187.778 128.013C188.051 128.392 188.517 129.008 188.537 129.036C188.79 129.402 189.073 129.822 189.569 129.678C189.702 129.63 189.819 129.545 189.905 129.433C189.99 129.321 190.042 129.186 190.052 129.045C190.081 128.406 189.234 127.569 189.076 127.291C186.166 122.152 187.052 121.195 187.052 121.134C187.54 121.211 189.013 123.224 190.361 126.024C191.169 127.74 191.457 128.271 192.088 128.077C192.256 128.022 192.396 127.904 192.479 127.747C192.613 127.487 192.639 127.286 192.023 125.418C190.847 121.845 190.873 120.539 191.138 120.069C191.186 119.983 191.225 119.968 191.264 119.957C191.673 119.831 192.757 120.805 193.988 125.064C194.188 125.757 194.261 126.939 195 127.188C195.101 127.222 195.209 127.23 195.314 127.21C195.419 127.191 195.518 127.146 195.601 127.078C195.806 126.91 196.062 126.699 195.317 123.597C194.752 122.014 194.392 120.365 194.246 118.691C194.212 118.434 194.276 118.173 194.424 117.96C194.53 117.962 194.632 117.997 194.718 118.059C196.138 118.852 196.537 121.076 196.713 122.68C197.429 129.189 195.16 135.733 194.996 136.553C194.844 136.777 194.582 137.151 194.461 137.312C192.619 139.793 191.52 141.739 188.343 143.257C184.337 144.902 179.653 145.437 175.271 146.239C172.583 146.946 169.826 147.357 167.048 147.466C163.448 147.305 161.255 145.114 159.933 140.361C158.303 134.499 157.966 125.996 158.192 119.994C158.195 119.911 158.182 119.828 158.153 119.75C158.124 119.672 158.08 119.601 158.024 119.54C157.967 119.479 157.899 119.43 157.824 119.395C157.748 119.36 157.667 119.341 157.584 119.338C157.501 119.334 157.418 119.348 157.34 119.376C157.262 119.405 157.19 119.449 157.129 119.506C157.068 119.562 157.019 119.63 156.984 119.706C156.95 119.781 156.93 119.863 156.927 119.946C156.697 126.046 157.043 134.701 158.712 140.702C159.629 144.038 161.495 148.493 166.98 148.736ZM195.327 116.959C193.997 116.214 192.957 117.123 192.977 118.756C193.007 119.105 193.045 119.451 193.091 119.795C192.418 118.901 191.707 118.542 190.956 118.734C189.482 119.092 189.625 121.096 189.917 122.586C189.068 121.233 187.56 119.119 186.336 120.136C185.508 120.825 185.443 122.142 186.149 124.123C185.278 123.354 184.39 122.948 183.579 123.377C182.255 124.091 183.073 126.371 183.415 127.344C183.967 128.562 184.373 129.841 184.624 131.154C184.738 132.664 184.515 133.998 184.572 135.446C183.403 135.555 182.246 135.767 181.114 136.079C178.919 136.628 179.314 136.458 178.287 136.702C177.825 136.831 177.349 136.896 176.87 136.898C177.236 135.363 177.769 133.874 178.461 132.456C182.083 121.757 182.141 111.992 179.864 100.28C179.54 98.6194 178.726 94.5094 180.379 94.226C186.006 93.252 205.726 95.491 207.096 96.5359C208.278 98.0122 206.246 112.175 203.627 125.403C203.374 126.668 203.192 129.845 202.209 130.635C201.093 131.528 199.03 131.713 197.451 131.829C198.246 127.679 199.012 119.016 195.329 116.959H195.327Z\"\n fill=\"#2E3847\"\n />\n <path\n d=\"M151.653 80.4069C151.748 80.4069 151.841 80.3856 151.927 80.3446C152.012 80.3037 152.087 80.2441 152.146 80.1703C152.206 80.0965 152.248 80.0103 152.269 79.9182C152.291 79.826 152.291 79.7302 152.271 79.6378C151.576 76.4838 151.161 73.2747 151.03 70.0478C151.023 69.8805 150.95 69.7227 150.827 69.6091C150.704 69.4955 150.541 69.4354 150.373 69.4419C150.29 69.4451 150.209 69.4647 150.133 69.4996C150.058 69.5344 149.99 69.5838 149.933 69.6449C149.877 69.706 149.833 69.7776 149.804 69.8556C149.776 69.9337 149.763 70.0166 149.766 70.0997C149.899 73.4005 150.322 76.6832 151.031 79.9098C151.062 80.0514 151.141 80.1781 151.254 80.2686C151.367 80.3591 151.508 80.4079 151.653 80.4069Z\"\n fill=\"#2E3847\"\n />\n <path\n d=\"M127.473 79.2809C127.041 79.8097 127.326 80.5535 128.711 82.4434C130.331 84.7373 132.425 86.6559 134.852 88.0689C140.777 91.5362 146.878 88.9076 152.137 84.4421C152.204 84.3898 152.261 84.3243 152.303 84.2496C152.344 84.1749 152.37 84.0924 152.379 84.0073C152.388 83.9222 152.38 83.8361 152.355 83.7543C152.329 83.6726 152.288 83.5968 152.232 83.5316C152.177 83.4664 152.109 83.4131 152.032 83.375C151.955 83.3368 151.872 83.3147 151.786 83.3098C151.701 83.3049 151.615 83.3174 151.535 83.3466C151.454 83.3758 151.381 83.421 151.318 83.4794C145.331 88.5584 140.153 89.7083 135.49 86.9772C133.182 85.6231 131.194 83.7861 129.663 81.5921C129.227 81.0598 128.861 80.475 128.571 79.8514C128.61 79.7118 128.599 79.563 128.541 79.4302C128.483 79.2973 128.381 79.1884 128.253 79.1215C128.124 79.0547 127.977 79.0341 127.835 79.0631C127.693 79.0921 127.565 79.169 127.473 79.2809Z\"\n fill=\"#2E3847\"\n />\n <path\n d=\"M145.416 157.275C145.398 157.108 145.314 156.956 145.184 156.851C145.053 156.746 144.886 156.697 144.72 156.714C140.292 157.195 135.569 159.486 132.401 161.169C132.276 161.235 132.177 161.341 132.12 161.47C132.062 161.599 132.049 161.744 132.083 161.881C132.118 162.018 132.197 162.14 132.308 162.227C132.42 162.314 132.557 162.361 132.699 162.36C132.802 162.36 132.904 162.334 132.995 162.286C136.07 160.652 140.647 158.429 144.855 157.972C145.022 157.954 145.175 157.87 145.28 157.739C145.385 157.609 145.434 157.442 145.416 157.275Z\"\n fill=\"#2E3847\"\n />\n <path\n d=\"M134.893 163.219C135.02 163.219 141.942 162.122 145.116 162.422C145.282 162.435 145.447 162.383 145.576 162.276C145.704 162.17 145.786 162.017 145.804 161.851C145.812 161.769 145.803 161.685 145.779 161.606C145.754 161.526 145.714 161.453 145.661 161.388C145.608 161.324 145.543 161.271 145.47 161.233C145.397 161.194 145.316 161.17 145.233 161.162C141.735 161.106 138.239 161.374 134.79 161.961C134.632 161.986 134.489 162.07 134.39 162.195C134.291 162.321 134.244 162.479 134.257 162.638C134.27 162.798 134.343 162.946 134.461 163.054C134.579 163.161 134.733 163.22 134.893 163.219Z\"\n fill=\"#2E3847\"\n />\n <path\n d=\"M128.698 155.967C128.604 155.947 128.506 155.948 128.413 155.971C128.319 155.993 128.232 156.036 128.158 156.097C128.083 156.158 128.023 156.234 127.982 156.321C127.941 156.408 127.92 156.503 127.921 156.599C127.801 158.528 127.879 160.464 128.155 162.377C128.174 162.543 128.258 162.696 128.389 162.801C128.521 162.906 128.688 162.954 128.855 162.935C129.022 162.916 129.175 162.832 129.279 162.701C129.384 162.569 129.432 162.402 129.414 162.235C129.142 160.403 129.065 158.547 129.183 156.699C129.201 156.54 129.162 156.379 129.074 156.245C128.985 156.111 128.852 156.012 128.698 155.967Z\"\n fill=\"#2E3847\"\n />\n <path\n d=\"M132.633 71.2458C132.787 70.3401 131.837 69.3483 131.092 68.9891C130.171 68.5523 129.139 68.4063 128.133 68.5703C128.049 68.5808 127.968 68.6081 127.895 68.6506C127.821 68.6931 127.757 68.7499 127.706 68.8176C127.655 68.8854 127.619 68.9627 127.598 69.0449C127.578 69.1272 127.574 69.2127 127.587 69.2964C127.936 71.5191 129.201 72.5171 131.341 72.2616C132.372 72.1402 132.589 71.5115 132.633 71.2458ZM131.193 71.0067C130.342 71.1016 129.422 71.089 128.995 69.7797C129.529 69.7738 130.058 69.8925 130.538 70.1263C130.888 70.3374 131.194 70.6145 131.438 70.9422C131.362 70.9808 131.278 71.0028 131.193 71.0067Z\"\n fill=\"#2E3847\"\n />\n <path\n d=\"M130.665 72.6742C130.503 72.634 130.331 72.6584 130.187 72.7422C130.042 72.826 129.936 72.9626 129.891 73.1232C129.847 73.2853 129.87 73.4579 129.954 73.603C130.038 73.7482 130.176 73.8541 130.338 73.8974C130.702 73.9942 131.076 74.0477 131.452 74.0568C131.619 74.0592 131.781 73.9948 131.901 73.8778C132.022 73.7609 132.091 73.6009 132.093 73.4332C132.095 73.2654 132.031 73.1036 131.914 72.9833C131.797 72.863 131.637 72.7942 131.469 72.7918C131.197 72.784 130.927 72.7446 130.665 72.6742Z\"\n fill=\"#2E3847\"\n />\n <path\n d=\"M124.742 60.444C124.837 60.4439 124.931 60.4222 125.017 60.3806C125.103 60.339 125.178 60.2785 125.237 60.2037C125.297 60.1289 125.338 60.0416 125.359 59.9485C125.379 59.8554 125.379 59.7589 125.357 59.666C125.301 59.4536 125.266 59.2363 125.253 59.0171C125.263 58.8509 125.208 58.6875 125.099 58.5614C124.99 58.4353 124.837 58.3564 124.671 58.3416C124.588 58.3331 124.504 58.3415 124.424 58.3664C124.345 58.3913 124.271 58.4322 124.207 58.4864C124.144 58.5407 124.092 58.6073 124.055 58.6822C124.018 58.7572 123.996 58.8388 123.992 58.9222C123.995 59.2718 124.04 59.6197 124.127 59.9583C124.16 60.0965 124.239 60.2197 124.35 60.3078C124.462 60.3959 124.6 60.4439 124.742 60.444Z\"\n fill=\"#2E3847\"\n />\n <path\n d=\"M134.608 61.1434C134.653 61.3051 134.76 61.4424 134.906 61.525C135.052 61.6077 135.225 61.629 135.387 61.5842C135.548 61.5394 135.686 61.4322 135.768 61.2862C135.851 61.1402 135.872 60.9673 135.827 60.8056C135.717 60.4146 135.639 60.0152 135.593 59.6114C135.589 59.5157 135.563 59.422 135.518 59.3372C135.474 59.2523 135.411 59.1782 135.335 59.12C135.259 59.0618 135.171 59.021 135.077 59.0003C134.983 58.9797 134.886 58.9797 134.793 59.0004C134.713 59.0185 134.638 59.0524 134.571 59.1001C134.505 59.1478 134.448 59.2084 134.406 59.2783C134.363 59.3481 134.335 59.4258 134.323 59.5067C134.311 59.5876 134.316 59.6701 134.336 59.7493C134.388 60.2207 134.479 60.6869 134.608 61.1434Z\"\n fill=\"#2E3847\"\n />\n <path\n d=\"M124.744 49.9077C124.67 49.8698 124.59 49.8469 124.507 49.8402C124.424 49.8335 124.341 49.8433 124.262 49.8688C124.102 49.9204 123.969 50.0334 123.893 50.1828C123.816 50.3323 123.802 50.506 123.854 50.6658C123.905 50.8256 124.018 50.9583 124.168 51.0348C125.535 51.4751 127.005 51.4777 128.374 51.0424C128.453 51.0188 128.528 50.9798 128.592 50.9275C128.657 50.8752 128.71 50.8107 128.75 50.7377C128.79 50.6647 128.815 50.5846 128.823 50.502C128.832 50.4194 128.824 50.3359 128.801 50.2562C128.777 50.1765 128.738 50.1023 128.686 50.0378C128.634 49.9732 128.569 49.9196 128.496 49.8799C128.423 49.8403 128.343 49.8154 128.26 49.8067C128.178 49.798 128.094 49.8057 128.015 49.8293C126.954 50.1664 125.82 50.1936 124.744 49.9077Z\"\n fill=\"#2E3847\"\n />\n <path\n d=\"M135.088 52.171C136.232 52.6427 137.472 52.8327 138.705 52.7251C138.787 52.7167 138.868 52.6922 138.941 52.6528C139.014 52.6134 139.079 52.56 139.131 52.4956C139.184 52.4313 139.223 52.3572 139.247 52.2776C139.271 52.198 139.279 52.1145 139.27 52.0319C139.263 51.9489 139.239 51.8682 139.2 51.7947C139.161 51.7211 139.107 51.6561 139.043 51.6035C138.978 51.5509 138.904 51.5118 138.824 51.4885C138.744 51.4651 138.66 51.4581 138.577 51.4677C137.608 51.543 136.634 51.4089 135.722 51.0743C135.624 50.9916 135.509 50.9331 135.384 50.9036C135.26 50.8742 135.13 50.8746 135.006 50.9048C134.861 50.943 134.734 51.0304 134.646 51.1521C134.558 51.2737 134.516 51.4221 134.525 51.5718C134.535 51.7214 134.597 51.8631 134.699 51.9724C134.802 52.0817 134.939 52.1519 135.088 52.171Z\"\n fill=\"#2E3847\"\n />\n <path\n d=\"M101.822 29.1682C101.838 30.4585 103.364 31.6843 104.45 31.9942C105.247 32.2232 106.021 32.3345 106.86 32.5293C107.024 32.5676 107.196 32.5393 107.338 32.4507C107.481 32.3621 107.583 32.2204 107.621 32.0569C107.659 31.8933 107.631 31.7213 107.542 31.5786C107.454 31.4359 107.312 31.3342 107.149 31.296C106.328 31.1075 105.538 30.9898 104.798 30.7786C104.02 30.5572 103.093 29.6742 103.087 29.1518C103.087 28.8861 103.466 28.7128 103.779 28.6116C105.51 28.0664 109.374 30.4067 109.851 32.2725C109.869 32.3557 109.903 32.4344 109.952 32.504C110.001 32.5735 110.064 32.6324 110.136 32.6772C110.209 32.7219 110.289 32.7516 110.373 32.7644C110.458 32.7773 110.543 32.773 110.626 32.7519C110.708 32.7308 110.786 32.6932 110.853 32.6415C110.921 32.5898 110.977 32.525 111.019 32.4509C111.061 32.3769 111.088 32.2951 111.097 32.2106C111.107 32.126 111.099 32.0404 111.075 31.9588C110.429 29.4389 105.882 26.6268 103.398 27.4048C102.013 27.8412 101.815 28.6964 101.822 29.1682Z\"\n fill=\"#2E3847\"\n />\n <path\n d=\"M113.707 24.2636C113.773 24.3228 113.85 24.3676 113.934 24.3952C114.018 24.4228 114.106 24.4325 114.194 24.4237C114.282 24.415 114.367 24.3879 114.444 24.3443C114.521 24.3007 114.587 24.2416 114.64 24.1706C114.692 24.0997 114.729 24.0185 114.749 23.9323C114.768 23.8462 114.769 23.757 114.752 23.6704C114.734 23.5839 114.699 23.5019 114.648 23.4298C114.597 23.3576 114.532 23.297 114.456 23.2516C113.53 22.5673 111.47 21.3971 111.155 20.2156C111.74 20.2118 112.315 20.3741 112.813 20.6837C115.191 22.6305 115.09 23.6564 117 25.6678C117.057 25.7282 117.126 25.7767 117.201 25.8107C117.277 25.8446 117.359 25.8633 117.442 25.8657C117.525 25.868 117.608 25.854 117.685 25.8244C117.763 25.7948 117.834 25.7501 117.894 25.6931C117.955 25.636 118.003 25.5676 118.037 25.4918C118.071 25.416 118.09 25.3342 118.092 25.2511C118.095 25.1681 118.081 25.0854 118.051 25.0078C118.021 24.9301 117.977 24.8591 117.92 24.7987C117.48 24.3351 117.077 23.8391 116.712 23.3149C115.892 21.9259 114.831 20.6943 113.578 19.678C112.831 19.148 111.018 18.5509 110.221 19.2985C109.883 19.6135 109.62 20.2207 110.283 21.3124C111.221 22.5102 112.384 23.5129 113.707 24.2636Z\"\n fill=\"#2E3847\"\n />\n <path\n d=\"M100.144 24.1083C100.312 24.1214 100.478 24.0673 100.606 23.958C100.734 23.8486 100.813 23.6929 100.826 23.5252C100.839 23.3574 100.785 23.1914 100.676 23.0635C100.566 22.9356 100.41 22.8564 100.243 22.8433C99.4992 22.7571 98.779 22.529 98.1213 22.1716C99.0903 21.2216 101.582 21.7327 102.96 22.4626C103.033 22.5034 103.114 22.5291 103.198 22.5383C103.281 22.5475 103.366 22.54 103.447 22.5161C103.527 22.4923 103.602 22.4526 103.667 22.3994C103.732 22.3462 103.786 22.2806 103.826 22.2063C103.865 22.1321 103.889 22.0507 103.897 21.967C103.905 21.8833 103.895 21.7989 103.87 21.7188C103.845 21.6387 103.804 21.5644 103.749 21.5003C103.695 21.4362 103.628 21.3836 103.553 21.3456C102.162 20.6056 98.7564 19.634 97.1549 21.3456C96.9947 21.4983 96.8824 21.6943 96.8319 21.9098C96.7813 22.1252 96.7946 22.3507 96.8702 22.5587C97.3472 23.7934 100.116 24.1071 100.144 24.1083Z\"\n fill=\"#2E3847\"\n />\n <path\n d=\"M62.8517 176.776C63.9085 179.485 63.9979 182.476 63.1047 185.243C63.0582 185.404 63.0777 185.577 63.1588 185.724C63.24 185.871 63.3761 185.979 63.5373 186.026C63.6985 186.072 63.8716 186.053 64.0184 185.972C64.1653 185.891 64.2739 185.754 64.3204 185.593C65.2962 182.549 65.1894 179.26 64.018 176.285C63.9878 176.206 63.9419 176.134 63.8831 176.072C63.8243 176.011 63.7537 175.962 63.6756 175.929C63.5976 175.896 63.5136 175.878 63.4286 175.878C63.3437 175.878 63.2596 175.895 63.1814 175.928C63.1031 175.961 63.0323 176.009 62.9731 176.07C62.914 176.131 62.8677 176.203 62.8371 176.282C62.8064 176.361 62.792 176.446 62.7948 176.531C62.7975 176.616 62.8173 176.699 62.853 176.776H62.8517Z\"\n fill=\"#2E3847\"\n />\n <path\n d=\"M66.4531 179.647C67.4651 179.702 72.7439 180.467 73.0425 180.467C73.2102 180.477 73.3752 180.421 73.501 180.309C73.6269 180.198 73.7033 180.041 73.7136 179.873C73.7238 179.706 73.667 179.541 73.5556 179.415C73.4442 179.289 73.2874 179.212 73.1196 179.202C66.1141 178.331 65.9863 178.133 65.7169 178.772C65.6705 178.881 65.6553 179.001 65.6728 179.118C65.6904 179.235 65.74 179.345 65.8163 179.436C65.8925 179.526 65.9924 179.594 66.1048 179.632C66.2172 179.669 66.3378 179.674 66.4531 179.647Z\"\n fill=\"#2E3847\"\n />\n <path\n d=\"M65.9374 183.107C67.1786 182.957 68.4278 182.883 69.678 182.883C70.7014 182.836 71.8045 182.788 72.7987 182.735C72.8818 182.731 72.9632 182.71 73.0382 182.674C73.1133 182.638 73.1806 182.588 73.2362 182.526C73.2918 182.464 73.3347 182.392 73.3624 182.314C73.3901 182.235 73.4021 182.152 73.3977 182.069C73.3933 181.986 73.3726 181.905 73.3367 181.83C73.3009 181.755 73.2506 181.687 73.1888 181.632C73.1269 181.576 73.0547 181.533 72.9763 181.505C72.8979 181.478 72.8148 181.466 72.7317 181.47C71.6514 181.555 66.2271 181.714 65.7742 181.861C65.6236 181.899 65.4922 181.99 65.4048 182.119C65.3175 182.247 65.2804 182.403 65.3005 182.557C65.3207 182.711 65.3967 182.852 65.5141 182.953C65.6316 183.055 65.7822 183.109 65.9374 183.107Z\"\n fill=\"#2E3847\"\n />\n <path\n d=\"M190.521 219.231C163.323 195.259 165.048 196.587 164.677 196.587H130.502C130.384 196.587 130.269 196.62 130.169 196.682C130.069 196.744 129.988 196.832 129.936 196.937C129.883 197.042 129.861 197.16 129.872 197.277C129.882 197.394 129.925 197.505 129.996 197.599L137.872 207.895C134.561 208.039 133.516 208.065 133.124 208.113C132.965 208.128 132.818 208.204 132.713 208.324C132.608 208.445 132.553 208.601 132.56 208.761C132.569 208.964 136.434 217.756 136.515 217.869C136.752 218.177 136.956 218.143 137.274 218.114C137.984 218.049 139.826 217.798 144.972 217.168C146.295 218.892 153.7 228.512 153.7 228.512C153.76 228.59 153.837 228.652 153.925 228.695C154.012 228.738 154.109 228.76 154.206 228.759C154.333 228.759 151.94 229.228 190.251 220.315C190.363 220.287 190.464 220.23 190.546 220.148C190.627 220.067 190.684 219.965 190.712 219.854C190.74 219.743 190.736 219.626 190.703 219.516C190.669 219.406 190.606 219.308 190.521 219.231ZM140.9 211.846L135.678 209.255L138.814 209.12L140.9 211.846ZM137.219 216.349L134.472 210.07L140.254 212.938L137.219 216.349ZM138.622 216.676L141.427 213.521L142.439 214.027C142.722 214.165 142.294 213.675 144.084 216.01L138.622 216.676ZM154.453 227.428C146.881 217.581 139.323 207.723 131.782 197.852H164.437L188.766 219.374L154.453 227.428Z\"\n fill=\"#2E3847\"\n />\n <path\n d=\"M163.768 199.122L157.269 203.676L135.608 199.021C135.444 198.986 135.273 199.017 135.132 199.108C134.991 199.2 134.891 199.343 134.856 199.507C134.821 199.671 134.852 199.843 134.944 199.984C135.035 200.125 135.178 200.224 135.343 200.259L155.856 204.669L145.799 211.719C145.689 211.796 145.606 211.907 145.562 212.034C145.519 212.162 145.517 212.3 145.558 212.428C145.599 212.557 145.679 212.669 145.788 212.749C145.897 212.828 146.029 212.871 146.163 212.87C146.452 212.87 145.531 213.449 157.548 205.027C173.633 208.486 172.74 208.306 172.869 208.306C173.025 208.305 173.175 208.246 173.29 208.141C173.405 208.036 173.477 207.892 173.493 207.737C173.508 207.582 173.466 207.427 173.375 207.301C173.283 207.175 173.148 207.087 172.995 207.055L158.954 204.037L164.493 200.153C164.631 200.057 164.724 199.91 164.753 199.745C164.782 199.579 164.745 199.409 164.648 199.272C164.552 199.135 164.405 199.041 164.24 199.012C164.075 198.983 163.905 199.021 163.767 199.117L163.768 199.122Z\"\n fill=\"#2E3847\"\n />\n <path\n d=\"M246.928 208.056L211.627 192.886C211.374 192.776 213.451 192.558 182.11 196.901C181.987 196.918 181.873 196.971 181.78 197.052C181.688 197.134 181.621 197.241 181.588 197.36C181.556 197.479 181.558 197.605 181.596 197.722C181.634 197.84 181.706 197.943 181.802 198.021C220.65 228.937 218.114 227.09 218.457 227.09C218.72 227.09 218.31 227.299 224.462 223.414C224.688 223.439 223.612 223.794 240.749 217.268C240.858 217.225 240.954 217.153 241.025 217.06C241.097 216.966 241.14 216.854 241.151 216.737C241.162 216.62 241.141 216.502 241.089 216.397C241.037 216.291 240.956 216.203 240.856 216.14L238.395 214.622L247.017 209.183C247.117 209.122 247.199 209.035 247.252 208.931C247.306 208.826 247.329 208.709 247.32 208.592C247.311 208.475 247.269 208.363 247.2 208.268C247.131 208.174 247.037 208.1 246.928 208.056ZM239.104 216.543L229.586 220.177L237.205 215.37L239.104 216.543ZM218.501 225.682L183.741 197.951L211.291 194.117L245.319 208.743L218.501 225.682Z\"\n fill=\"#2E3847\"\n />\n <path\n d=\"M130.222 211.568L126.978 209.585L129.002 201.412C129.025 201.318 129.027 201.221 129.007 201.128C128.987 201.034 128.945 200.946 128.886 200.87C128.827 200.795 128.752 200.733 128.665 200.691C128.579 200.649 128.485 200.627 128.389 200.627H112.332L97.6757 191.661C97.592 191.611 97.4979 191.58 97.4006 191.571C97.3032 191.563 97.2052 191.577 97.114 191.612L88.6044 194.956C88.4779 194.932 88.7688 194.608 54.5898 192.272C54.2015 192.245 55.4589 191.397 34.6028 207.452C31.2354 207.04 31.3442 206.999 31.0861 207.161L9.21426 220.616C9.11197 220.679 9.03002 220.771 8.97803 220.88C8.92604 220.988 8.90619 221.11 8.92081 221.229C8.93543 221.349 8.98391 221.462 9.06055 221.555C9.13719 221.648 9.23879 221.717 9.35341 221.754L49.1857 234.518C49.2942 234.553 49.4103 234.559 49.5217 234.534C49.633 234.509 49.7355 234.454 49.8182 234.375L56.7555 227.813L64.41 229.746C64.5197 229.774 64.6348 229.772 64.7434 229.74C64.852 229.708 64.95 229.648 65.0273 229.565L78.2807 215.332L82.6715 219.547L76.7918 228.402C76.7305 228.494 76.6946 228.602 76.688 228.713C76.6814 228.824 76.7042 228.935 76.7541 229.034C76.804 229.134 76.8793 229.218 76.9723 229.279C77.0653 229.34 77.1728 229.376 77.2839 229.382L93.8807 230.309L98.145 234.403C98.2626 234.516 98.4194 234.58 98.5827 234.58C98.8635 234.58 98.5359 234.751 104.093 230.879L121.001 231.83C121.142 231.83 121.279 231.782 121.391 231.695C121.502 231.608 121.581 231.486 121.615 231.349L125.396 216.022L130.258 212.631C130.345 212.571 130.416 212.489 130.463 212.395C130.51 212.3 130.533 212.195 130.53 212.09C130.526 211.984 130.496 211.881 130.442 211.79C130.388 211.699 130.312 211.623 130.222 211.568ZM127.579 201.892L125.847 208.893L114.404 201.894L127.579 201.892ZM49.2148 233.2L11.051 220.971L31.5706 208.36L33.186 208.558L21.2128 217.781C21.1187 217.853 21.0469 217.951 21.0056 218.062C20.9644 218.173 20.9553 218.294 20.9794 218.41C21.0036 218.527 21.06 218.634 21.1422 218.72C21.2244 218.805 21.3291 218.866 21.4443 218.895L55.2969 227.447L49.2148 233.2ZM64.3518 228.429L23.023 217.988L54.7441 193.552L85.9327 196.01L81.6203 197.705L66.4669 196.121C66.304 196.103 66.1403 196.148 66.0102 196.248L54.7049 205.153C54.6165 205.223 54.5483 205.315 54.5072 205.42C54.4661 205.524 54.4537 205.638 54.4713 205.749C54.4888 205.86 54.5356 205.965 54.6069 206.052C54.6782 206.139 54.7715 206.205 54.877 206.244C55.0035 206.292 54.9756 206.288 73.093 210.485C73.346 210.544 72.7135 209.992 77.3636 214.45L64.3518 228.429ZM66.9248 204.439L71.4877 208.819L58.3987 205.777L66.9248 204.439ZM67.5826 203.221C67.2879 203.027 68.0115 202.984 57.3842 204.656L66.1127 197.781L68.9703 202.675L67.5826 203.221ZM70.1582 202.209L67.4055 197.494L79.0625 198.71L70.1582 202.209ZM78.4515 228.179L83.5937 220.438L92.4715 228.965L78.4515 228.179ZM120.506 230.533L105.769 229.705L123.817 217.118L120.506 230.533ZM98.6422 233.129L68.5162 204.214L97.2886 192.905L128.735 212.14C98.8307 233 105.109 228.622 98.6422 233.128V233.129Z\"\n fill=\"#2E3847\"\n />\n <path\n d=\"M29.9505 198.984C30.0419 199.043 30.147 199.078 30.2556 199.084C30.3642 199.091 30.4726 199.069 30.5703 199.021L48.9723 190.05L61.3921 189.68C61.5327 189.729 61.6859 189.726 61.8247 189.673C62.2902 189.494 73.3627 185.751 75.2881 185.483C75.4038 185.471 75.514 185.427 75.6064 185.356C75.6988 185.286 75.77 185.191 75.812 185.082C75.8539 184.974 75.8651 184.856 75.8444 184.741C75.8236 184.627 75.7716 184.52 75.6941 184.433C74.0496 182.484 76.0319 178.376 76.5177 177.874C76.6239 177.794 76.7023 177.683 76.7419 177.557C76.7815 177.43 76.7802 177.294 76.7382 177.168C76.6962 177.042 76.6157 176.933 76.508 176.855C76.4003 176.777 76.2709 176.736 76.1382 176.736C72.4697 174.906 65.4464 172.913 61.8892 171.325C61.473 171.138 50.6168 171.524 6.33166 172.829C6.16723 172.834 6.01118 172.903 5.89664 173.021C5.78209 173.139 5.71807 173.297 5.71814 173.462V190.685C5.71814 190.853 5.78478 191.013 5.90339 191.132C6.02201 191.251 6.18289 191.317 6.35064 191.317L17.5497 190.985L29.9505 198.984ZM30.3363 197.728L19.7811 190.918L45.8983 190.141L30.3363 197.728ZM75.1413 177.654C74.0648 179.51 73.2868 182.432 74.2166 184.426C71.507 185.12 64.7797 187.309 62.2624 188.171V172.853C65.8145 174.293 71.8359 176.107 75.1413 177.654ZM6.98567 174.072C23.9898 173.566 59.6565 172.5 61.0012 172.481V188.42L6.98567 190.027V174.072Z\"\n fill=\"#2E3847\"\n />\n <path\n d=\"M171.431 30.414C171.483 31.992 172.005 33.5185 172.929 34.7984C173.854 36.0783 175.139 37.0536 176.621 37.5995C178.102 38.1453 179.713 38.2371 181.247 37.863C182.78 37.4889 184.168 36.6659 185.232 35.4993C186.761 33.9578 187.629 31.8814 187.653 29.7103C187.677 27.5393 186.853 25.4445 185.358 23.8701C184.584 23.1325 183.672 22.5553 182.674 22.1716C181.677 21.7879 180.613 21.6053 179.544 21.6343C178.475 21.6634 177.423 21.9035 176.447 22.3408C175.472 22.7781 174.592 23.4041 173.86 24.1826C173.058 25.0059 172.431 25.9817 172.013 27.052C171.596 28.1224 171.398 29.2656 171.431 30.414ZM179.837 22.8961C185.958 22.8961 188.541 30.2508 184.321 34.6188C183.43 35.6059 182.265 36.3045 180.975 36.625C179.685 36.9456 178.328 36.8736 177.079 36.4181C175.83 35.9627 174.746 35.1447 173.965 34.0688C173.184 32.993 172.742 31.7084 172.696 30.3798C172.665 29.4174 172.826 28.4584 173.169 27.5589C173.513 26.6594 174.032 25.8373 174.697 25.1406C175.362 24.444 176.159 23.8867 177.041 23.5013C177.923 23.1159 178.874 22.9102 179.837 22.8961Z\"\n fill=\"#2E3847\"\n />\n <path\n d=\"M179.147 24.9964C179.789 25.005 180.423 25.144 181.01 25.4049C181.598 25.6659 182.126 26.0433 182.562 26.5144C182.622 26.5787 182.694 26.63 182.774 26.665C182.854 26.7001 182.941 26.7181 183.028 26.7181C183.151 26.7182 183.271 26.6824 183.374 26.6152C183.477 26.548 183.558 26.4522 183.608 26.3396C183.657 26.227 183.673 26.1024 183.652 25.9811C183.632 25.8599 183.577 25.7471 183.494 25.6567C182.942 25.0575 182.274 24.5772 181.531 24.2455C180.787 23.9137 179.984 23.7375 179.17 23.7276C179.002 23.7253 178.84 23.7896 178.72 23.9066C178.6 24.0236 178.531 24.1835 178.528 24.3512C178.526 24.519 178.59 24.6808 178.707 24.8011C178.824 24.9214 178.984 24.9903 179.152 24.9926L179.147 24.9964Z\"\n fill=\"#2E3847\"\n />\n <path\n d=\"M184.646 28.8631C184.771 28.8631 184.894 28.826 184.998 28.7565C185.102 28.687 185.183 28.5883 185.231 28.4727C185.279 28.3571 185.291 28.2299 185.267 28.1073C185.242 27.9846 185.182 27.8719 185.094 27.7834C185.005 27.6949 184.892 27.6347 184.77 27.6103C184.647 27.5859 184.52 27.5984 184.404 27.6463C184.289 27.6942 184.19 27.7752 184.12 27.8792C184.051 27.9833 184.014 28.1055 184.014 28.2306C184.014 28.3984 184.08 28.5593 184.199 28.6779C184.318 28.7965 184.479 28.8631 184.646 28.8631Z\"\n fill=\"#2E3847\"\n />\n <path\n d=\"M52.7746 213.355L43.8197 205.638C43.757 205.582 43.6838 205.539 43.6043 205.512C43.5249 205.485 43.4408 205.473 43.3569 205.479C43.2731 205.484 43.1912 205.507 43.116 205.544C43.0408 205.582 42.9739 205.634 42.9191 205.698C42.8643 205.761 42.8227 205.835 42.7968 205.915C42.771 205.995 42.7613 206.079 42.7683 206.163C42.7754 206.247 42.7991 206.328 42.838 206.403C42.8769 206.477 42.9302 206.543 42.9949 206.597L51.0049 213.499L31.071 215.132C30.9033 215.146 30.7479 215.226 30.639 215.354C30.5301 215.482 30.4767 215.649 30.4904 215.816C30.5042 215.984 30.584 216.139 30.7123 216.248C30.8407 216.357 31.007 216.411 31.1748 216.397L52.3496 214.663L63.0578 223.888C63.185 223.998 63.3504 224.052 63.5178 224.04C63.6852 224.027 63.8407 223.949 63.9503 223.822C64.0598 223.695 64.1144 223.529 64.1019 223.362C64.0895 223.195 64.011 223.039 63.8839 222.929L54.1193 214.517L73.6383 212.918C73.806 212.904 73.9614 212.825 74.0703 212.696C74.1792 212.568 74.2327 212.402 74.2189 212.234C74.2052 212.066 74.1253 211.911 73.997 211.802C73.8687 211.693 73.7023 211.639 73.5346 211.653L52.7746 213.355Z\"\n fill=\"#2E3847\"\n />\n <path\n d=\"M97.0254 194.516L85.5721 199.333C85.4174 199.399 85.295 199.522 85.2316 199.678C85.1683 199.833 85.1693 200.007 85.2343 200.162C85.2994 200.317 85.4233 200.439 85.5787 200.503C85.7341 200.566 85.9083 200.565 86.0629 200.5L97.5162 195.683C97.5928 195.65 97.6623 195.603 97.7207 195.544C97.7791 195.485 97.8253 195.415 97.8567 195.338C97.8881 195.261 97.904 195.179 97.9035 195.096C97.903 195.013 97.8862 194.931 97.854 194.854C97.8218 194.778 97.7748 194.708 97.7157 194.65C97.6566 194.591 97.5866 194.545 97.5096 194.514C97.4327 194.482 97.3503 194.466 97.2673 194.467C97.1842 194.467 97.102 194.484 97.0254 194.516Z\"\n fill=\"#2E3847\"\n />\n <path\n d=\"M87.3813 202.228C87.4134 202.304 87.4603 202.374 87.5193 202.433C87.5783 202.491 87.6483 202.537 87.7253 202.569C87.8023 202.6 87.8847 202.616 87.9678 202.616C88.051 202.616 88.1332 202.599 88.2099 202.567L99.672 197.75C99.8192 197.68 99.9338 197.556 99.992 197.404C100.05 197.252 100.047 197.083 99.9844 196.933C99.9213 196.783 99.8027 196.663 99.6533 196.598C99.504 196.533 99.3353 196.528 99.1825 196.584L87.7191 201.4C87.5647 201.465 87.4424 201.589 87.3791 201.744C87.3158 201.899 87.3165 202.073 87.3813 202.228Z\"\n fill=\"#2E3847\"\n />\n <path\n d=\"M84.8033 209.863C96.2705 213.799 95.5558 213.572 95.7165 213.572C95.8655 213.571 96.0095 213.518 96.123 213.421C96.2365 213.324 96.3121 213.191 96.3366 213.044C96.3611 212.897 96.3329 212.746 96.2569 212.617C96.181 212.489 96.0621 212.392 95.9214 212.343L84.4099 208.392L82.3859 200.791C82.3646 200.71 82.3278 200.635 82.2774 200.569C82.227 200.503 82.1641 200.447 82.0923 200.406C82.0204 200.364 81.9411 200.337 81.8587 200.325C81.7764 200.314 81.6927 200.32 81.6124 200.341C81.532 200.362 81.4567 200.399 81.3906 200.449C81.3245 200.5 81.2691 200.563 81.2273 200.635C81.1855 200.706 81.1583 200.786 81.1472 200.868C81.1361 200.95 81.1414 201.034 81.1626 201.114L82.964 207.897L71.9281 204.11C71.8486 204.079 71.7636 204.064 71.6782 204.066C71.5928 204.069 71.5088 204.088 71.4312 204.124C71.3537 204.16 71.2842 204.211 71.2269 204.275C71.1697 204.338 71.1259 204.413 71.0982 204.493C71.0704 204.574 71.0594 204.66 71.0657 204.745C71.072 204.83 71.0954 204.913 71.1347 204.989C71.174 205.065 71.2282 205.132 71.2941 205.187C71.36 205.241 71.4363 205.281 71.5183 205.305L83.3549 209.369L85.8229 218.657C85.8658 218.82 85.9715 218.958 86.1165 219.043C86.2616 219.127 86.4342 219.15 86.5964 219.107C86.7587 219.064 86.8972 218.959 86.9815 218.814C87.0658 218.668 87.0891 218.496 87.0462 218.334L84.8033 209.863Z\"\n fill=\"#2E3847\"\n />\n <path\n d=\"M90.1252 203.506C89.9601 203.49 89.7956 203.541 89.6672 203.646C89.5389 203.751 89.4569 203.902 89.439 204.067C89.4211 204.232 89.4687 204.397 89.5714 204.527C89.6742 204.658 89.8241 204.742 89.9886 204.763L101.992 206.077L101.601 214.459C101.597 214.542 101.61 214.625 101.638 214.703C101.666 214.782 101.71 214.854 101.766 214.915C101.879 215.039 102.036 215.114 102.204 215.121C102.372 215.129 102.536 215.07 102.66 214.957C102.784 214.844 102.858 214.686 102.866 214.519L103.253 206.216C117.189 207.742 115.359 207.554 115.506 207.554C115.674 207.563 115.838 207.505 115.963 207.392C116.088 207.28 116.164 207.123 116.173 206.955C116.182 206.787 116.124 206.623 116.012 206.498C115.9 206.373 115.742 206.298 115.574 206.289L103.312 204.946L103.623 198.281C103.631 198.113 103.572 197.949 103.459 197.825C103.345 197.701 103.188 197.627 103.02 197.619C102.852 197.611 102.688 197.67 102.564 197.783C102.44 197.896 102.366 198.054 102.358 198.222L102.05 204.807L90.1252 203.506Z\"\n fill=\"#2E3847\"\n />\n <path\n d=\"M99.8772 215.013C99.8345 214.942 99.7782 214.88 99.7115 214.83C99.6448 214.781 99.569 214.745 99.4884 214.725C99.4078 214.704 99.324 214.7 99.2418 214.712C99.1597 214.725 99.0807 214.753 99.0094 214.796L88.83 220.897C88.7111 220.968 88.6189 221.076 88.5675 221.205C88.5161 221.333 88.5083 221.475 88.5454 221.609C88.5825 221.742 88.6623 221.86 88.7727 221.943C88.883 222.027 89.0178 222.072 89.1563 222.072C89.4093 222.072 88.5086 222.549 99.6558 215.88C99.8001 215.794 99.9044 215.655 99.9459 215.492C99.9875 215.33 99.9627 215.157 99.8772 215.013Z\"\n fill=\"#2E3847\"\n />\n <path\n d=\"M92.2186 224.684C92.3033 224.829 92.4421 224.934 92.6043 224.977C92.7666 225.019 92.9391 224.995 93.0839 224.911L119.349 209.499C119.494 209.414 119.599 209.275 119.642 209.113C119.684 208.95 119.66 208.778 119.575 208.633C119.491 208.488 119.352 208.382 119.189 208.34C119.027 208.297 118.854 208.321 118.709 208.406L92.4438 223.819C92.2992 223.904 92.1943 224.043 92.1521 224.205C92.1099 224.367 92.1338 224.54 92.2186 224.684Z\"\n fill=\"#2E3847\"\n />\n <path\n d=\"M96.2972 228.378C96.3431 228.447 96.4021 228.507 96.471 228.553C96.5399 228.6 96.6172 228.632 96.6986 228.649C96.78 228.665 96.8639 228.666 96.9455 228.65C97.027 228.634 97.1046 228.602 97.1739 228.556L122.562 211.751C122.632 211.705 122.691 211.646 122.738 211.577C122.784 211.508 122.817 211.431 122.833 211.35C122.85 211.268 122.85 211.184 122.834 211.103C122.818 211.021 122.787 210.944 122.741 210.874C122.695 210.805 122.636 210.745 122.567 210.699C122.498 210.653 122.421 210.62 122.339 210.604C122.258 210.587 122.174 210.587 122.093 210.602C122.011 210.618 121.933 210.65 121.864 210.696L96.4756 227.501C96.4063 227.547 96.3468 227.606 96.3003 227.675C96.2538 227.744 96.2214 227.821 96.2048 227.903C96.1883 227.984 96.1879 228.068 96.2038 228.15C96.2196 228.231 96.2514 228.309 96.2972 228.378Z\"\n fill=\"#2E3847\"\n />\n <path\n d=\"M46.932 204.721C47.2736 204.721 46.5399 205.227 57.2962 196.229C57.3646 196.177 57.4218 196.112 57.4643 196.038C57.5068 195.963 57.5337 195.881 57.5433 195.795C57.553 195.71 57.5452 195.624 57.5204 195.542C57.4957 195.46 57.4545 195.383 57.3994 195.318C57.3442 195.252 57.2763 195.198 57.1997 195.16C57.1231 195.121 57.0394 195.098 56.9538 195.093C56.8682 195.088 56.7824 195.1 56.7016 195.129C56.6209 195.158 56.5468 195.203 56.484 195.261L46.526 203.604C46.4266 203.687 46.3552 203.799 46.3216 203.925C46.288 204.05 46.2938 204.183 46.3381 204.304C46.3824 204.426 46.4632 204.532 46.5694 204.606C46.6757 204.681 46.8023 204.721 46.932 204.721Z\"\n fill=\"#2E3847\"\n />\n <path\n d=\"M51.0578 205.322C51.1668 205.447 51.3209 205.525 51.4866 205.537C51.6523 205.55 51.8163 205.497 51.9433 205.39L61.8559 196.915C61.9833 196.805 62.0623 196.65 62.0753 196.483C62.0884 196.316 62.0345 196.15 61.9254 196.023C61.8164 195.895 61.6612 195.816 61.4939 195.803C61.3267 195.79 61.1611 195.844 61.0336 195.953L51.1223 204.429C51.0594 204.483 51.0078 204.549 50.9704 204.624C50.9331 204.698 50.9108 204.779 50.9048 204.862C50.8988 204.945 50.9093 205.028 50.9355 205.107C50.9618 205.186 51.0033 205.259 51.0578 205.322Z\"\n fill=\"#2E3847\"\n />\n <path\n d=\"M148.042 215.809C148.057 215.89 148.089 215.968 148.134 216.038C148.179 216.108 148.238 216.168 148.307 216.215C148.375 216.262 148.452 216.295 148.534 216.312C148.615 216.329 148.699 216.33 148.781 216.315L175.776 211.22C175.86 211.207 175.94 211.178 176.012 211.133C176.084 211.088 176.147 211.029 176.196 210.96C176.245 210.891 176.279 210.812 176.297 210.73C176.315 210.647 176.316 210.561 176.3 210.478C176.285 210.394 176.252 210.315 176.205 210.244C176.158 210.174 176.097 210.114 176.026 210.067C175.956 210.02 175.876 209.988 175.793 209.973C175.709 209.958 175.624 209.96 175.541 209.978L148.547 215.072C148.383 215.103 148.237 215.198 148.143 215.336C148.048 215.474 148.012 215.644 148.042 215.809Z\"\n fill=\"#2E3847\"\n />\n <path\n d=\"M151.646 220.177C151.664 220.258 151.698 220.334 151.747 220.402C151.795 220.47 151.856 220.528 151.926 220.572C151.997 220.616 152.075 220.646 152.157 220.66C152.239 220.674 152.323 220.671 152.405 220.652L178.541 214.671C178.625 214.656 178.705 214.624 178.776 214.577C178.848 214.53 178.909 214.469 178.956 214.398C179.003 214.326 179.035 214.246 179.05 214.162C179.066 214.078 179.064 213.992 179.045 213.908C179.026 213.825 178.99 213.746 178.94 213.677C178.89 213.608 178.826 213.55 178.753 213.506C178.679 213.462 178.598 213.434 178.513 213.422C178.428 213.411 178.342 213.417 178.26 213.439L152.122 219.419C152.041 219.437 151.965 219.472 151.897 219.52C151.829 219.568 151.771 219.629 151.727 219.699C151.683 219.769 151.653 219.848 151.639 219.93C151.625 220.012 151.627 220.096 151.646 220.177Z\"\n fill=\"#2E3847\"\n />\n <path\n d=\"M154.942 224.731C154.981 224.894 155.082 225.035 155.225 225.123C155.367 225.211 155.538 225.239 155.701 225.201L183.101 218.76C183.185 218.744 183.264 218.711 183.334 218.663C183.404 218.615 183.464 218.554 183.511 218.482C183.557 218.411 183.588 218.331 183.602 218.247C183.617 218.164 183.614 218.078 183.595 217.995C183.576 217.912 183.54 217.834 183.49 217.766C183.439 217.697 183.376 217.639 183.303 217.596C183.23 217.552 183.149 217.524 183.065 217.513C182.98 217.501 182.895 217.507 182.813 217.529L155.412 223.97C155.249 224.009 155.108 224.111 155.02 224.254C154.932 224.396 154.904 224.568 154.942 224.731Z\"\n fill=\"#2E3847\"\n />\n <path\n d=\"M189.414 200.426C189.444 200.591 189.539 200.736 189.677 200.831C189.815 200.926 189.984 200.962 190.149 200.932L212.033 196.983C212.115 196.969 212.194 196.938 212.265 196.893C212.335 196.849 212.396 196.79 212.444 196.722C212.492 196.654 212.525 196.576 212.543 196.495C212.561 196.413 212.563 196.329 212.548 196.247C212.533 196.165 212.502 196.086 212.457 196.016C212.411 195.946 212.353 195.886 212.284 195.838C212.215 195.791 212.138 195.758 212.056 195.741C211.974 195.723 211.89 195.723 211.808 195.738L189.924 199.687C189.841 199.702 189.763 199.733 189.693 199.778C189.623 199.823 189.562 199.882 189.515 199.951C189.467 200.019 189.434 200.097 189.417 200.178C189.399 200.26 189.398 200.344 189.414 200.426Z\"\n fill=\"#2E3847\"\n />\n <path\n d=\"M195.1 204.55C195.141 204.713 195.245 204.852 195.39 204.938C195.534 205.023 195.706 205.048 195.869 205.007L216.385 199.774C216.465 199.753 216.542 199.718 216.608 199.668C216.675 199.618 216.732 199.556 216.775 199.484C216.817 199.413 216.846 199.333 216.858 199.251C216.87 199.168 216.865 199.084 216.845 199.004C216.824 198.923 216.788 198.847 216.738 198.78C216.688 198.714 216.625 198.657 216.553 198.615C216.481 198.573 216.402 198.545 216.319 198.533C216.237 198.522 216.153 198.527 216.072 198.548L195.556 203.781C195.394 203.823 195.254 203.927 195.169 204.071C195.083 204.215 195.058 204.388 195.1 204.55Z\"\n fill=\"#2E3847\"\n />\n <path\n d=\"M199.767 208.826C199.794 208.905 199.836 208.977 199.891 209.04C199.946 209.102 200.013 209.153 200.088 209.189C200.162 209.226 200.243 209.247 200.326 209.252C200.409 209.257 200.493 209.246 200.571 209.218L221.383 202.019C221.54 201.964 221.669 201.848 221.742 201.697C221.814 201.547 221.824 201.374 221.77 201.216C221.715 201.058 221.6 200.929 221.45 200.855C221.3 200.782 221.127 200.77 220.969 200.824L200.157 208.023C199.999 208.078 199.869 208.193 199.796 208.344C199.723 208.494 199.712 208.668 199.767 208.826Z\"\n fill=\"#2E3847\"\n />\n <path\n d=\"M204.517 212.421C204.549 212.498 204.597 212.567 204.656 212.625C204.715 212.683 204.785 212.729 204.863 212.76C204.94 212.791 205.022 212.807 205.105 212.806C205.188 212.805 205.27 212.788 205.347 212.755L226.491 203.729C226.645 203.663 226.767 203.539 226.83 203.383C226.892 203.227 226.89 203.053 226.824 202.899C226.759 202.745 226.634 202.623 226.478 202.56C226.323 202.498 226.148 202.5 225.994 202.566L204.851 211.591C204.774 211.624 204.705 211.671 204.647 211.73C204.589 211.79 204.543 211.86 204.512 211.937C204.481 212.014 204.465 212.097 204.466 212.18C204.467 212.263 204.484 212.345 204.517 212.421Z\"\n fill=\"#2E3847\"\n />\n <path\n d=\"M233.38 213.046L221.857 213.805L222.907 209.378C222.945 209.215 222.917 209.044 222.829 208.901C222.741 208.759 222.6 208.657 222.438 208.619C222.357 208.599 222.273 208.595 222.191 208.608C222.109 208.621 222.03 208.65 221.96 208.694C221.889 208.738 221.828 208.795 221.78 208.863C221.731 208.93 221.697 209.007 221.679 209.088L220.54 213.901L208.982 214.667C208.814 214.678 208.658 214.755 208.547 214.882C208.436 215.008 208.381 215.174 208.392 215.342C208.403 215.509 208.48 215.666 208.607 215.776C208.734 215.887 208.899 215.943 209.067 215.932L220.235 215.193L218.464 222.686C218.429 222.847 218.459 223.017 218.548 223.157C218.636 223.297 218.776 223.397 218.937 223.435C219.098 223.473 219.268 223.446 219.41 223.36C219.552 223.275 219.654 223.137 219.695 222.976L221.56 215.104L233.472 214.316C233.64 214.305 233.797 214.228 233.907 214.101C234.018 213.975 234.074 213.81 234.063 213.642C234.052 213.474 233.975 213.318 233.848 213.207C233.722 213.096 233.557 213.04 233.389 213.051L233.38 213.046Z\"\n fill=\"#2E3847\"\n />\n <path\n d=\"M224.763 208.173C224.838 208.323 224.969 208.437 225.128 208.49C225.287 208.543 225.46 208.531 225.61 208.457L231.429 205.558C231.508 205.524 231.579 205.474 231.638 205.412C231.697 205.349 231.742 205.276 231.772 205.195C231.801 205.114 231.814 205.028 231.809 204.943C231.804 204.857 231.782 204.773 231.744 204.696C231.705 204.62 231.652 204.551 231.587 204.496C231.521 204.44 231.445 204.399 231.363 204.373C231.281 204.348 231.194 204.34 231.109 204.349C231.024 204.359 230.941 204.385 230.866 204.427L225.047 207.326C224.897 207.4 224.783 207.532 224.73 207.69C224.676 207.849 224.688 208.023 224.763 208.173Z\"\n fill=\"#2E3847\"\n />\n <path\n d=\"M229.626 210.269C229.664 210.344 229.715 210.41 229.778 210.464C229.841 210.519 229.914 210.56 229.993 210.586C230.072 210.612 230.156 210.622 230.239 210.616C230.321 210.61 230.402 210.588 230.477 210.55L236.254 207.641C236.329 207.604 236.395 207.552 236.45 207.489C236.505 207.426 236.547 207.353 236.573 207.274C236.6 207.195 236.61 207.111 236.604 207.028C236.598 206.945 236.576 206.864 236.538 206.789C236.501 206.715 236.449 206.648 236.385 206.594C236.322 206.54 236.249 206.498 236.169 206.473C236.09 206.447 236.006 206.437 235.923 206.443C235.84 206.45 235.759 206.473 235.685 206.511L229.907 209.421C229.758 209.496 229.644 209.628 229.591 209.787C229.539 209.946 229.551 210.12 229.626 210.269Z\"\n fill=\"#2E3847\"\n />\n </svg>\n );\n}\n\nexport default NoComments;\n","import { useGetCommentsQuery } from './comment.api.slice';\nimport CommentsTimeline from '@/components/Comment/CommentsTimeline';\nimport NoComments from '@/components/Illustrations/NoComments';\nimport { Skeleton } from '@/components/ui/skeleton';\n\nfunction PostCommentList({ postId }: { postId: string }) {\n const { data: comments, isLoading } = useGetCommentsQuery(postId);\n\n if (isLoading) {\n return (\n <div className=\"flex flex-col gap-3 \">\n {Array.from({ length: 5 }).map((_, index) => (\n <div className=\"flex gap-3\" key={index}>\n <Skeleton className=\"rounded-full w-10 h-10\" />\n <div className=\"flex flex-col gap-2\">\n <div className=\"flex items-center space-x-2\">\n <Skeleton className=\"h-4 max-w-[200px] w-[200px]\" />\n <Skeleton className=\"h-4 max-w-[100px] w-[100px]\" />\n </div>\n <div className=\"flex gap-1 flex-col\">\n <Skeleton className=\"h-4 max-w-[500px] w-[500px]\" />\n <Skeleton className=\"h-4 max-w-[500px] w-[500px]\" />\n </div>\n </div>\n </div>\n ))}\n </div>\n );\n }\n\n if (comments?.length === 0) {\n return (\n <div className=\"w-full lg:w-1/2 flex flex-col items-center justify-center border-[#B4B7C9] border-2 border-dashed rounded-lg\">\n <NoComments />\n <h1 className=\"font-primary font-bold text-[28px] text-[#292929]\">\n Comments Not Found!\n </h1>\n <p className=\"font-secondary font-normal text-[#454545]\">\n your thoughts could lead the way\n </p>\n </div>\n );\n }\n\n return comments && <CommentsTimeline comments={comments} />;\n}\n\nexport default PostCommentList;\n","import * as React from 'react';\nimport useEmblaCarousel, {\n type UseEmblaCarouselType,\n} from 'embla-carousel-react';\nimport { ArrowLeft, ArrowRight } from 'lucide-react';\n\nimport { cn } from '@/lib/utils';\nimport { Button } from '@/components/ui/button';\n\ntype CarouselApi = UseEmblaCarouselType[1];\ntype UseCarouselParameters = Parameters<typeof useEmblaCarousel>;\ntype CarouselOptions = UseCarouselParameters[0];\ntype CarouselPlugin = UseCarouselParameters[1];\n\ntype CarouselProps = {\n opts?: CarouselOptions;\n plugins?: CarouselPlugin;\n orientation?: 'horizontal' | 'vertical';\n setApi?: (api: CarouselApi) => void;\n};\n\ntype CarouselContextProps = {\n carouselRef: ReturnType<typeof useEmblaCarousel>[0];\n api: ReturnType<typeof useEmblaCarousel>[1];\n scrollPrev: () => void;\n scrollNext: () => void;\n canScrollPrev: boolean;\n canScrollNext: boolean;\n} & CarouselProps;\n\nconst CarouselContext = React.createContext<CarouselContextProps | null>(null);\n\nfunction useCarousel() {\n const context = React.useContext(CarouselContext);\n\n if (!context) {\n throw new Error('useCarousel must be used within a <Carousel />');\n }\n\n return context;\n}\n\nconst Carousel = React.forwardRef<\n HTMLDivElement,\n React.HTMLAttributes<HTMLDivElement> & CarouselProps\n>(\n (\n {\n orientation = 'horizontal',\n opts,\n setApi,\n plugins,\n className,\n children,\n ...props\n },\n ref\n ) => {\n const [carouselRef, api] = useEmblaCarousel(\n {\n ...opts,\n axis: orientation === 'horizontal' ? 'x' : 'y',\n },\n plugins\n );\n const [canScrollPrev, setCanScrollPrev] = React.useState(false);\n const [canScrollNext, setCanScrollNext] = React.useState(false);\n\n const onSelect = React.useCallback((api: CarouselApi) => {\n if (!api) {\n return;\n }\n\n setCanScrollPrev(api.canScrollPrev());\n setCanScrollNext(api.canScrollNext());\n }, []);\n\n const scrollPrev = React.useCallback(() => {\n api?.scrollPrev();\n }, [api]);\n\n const scrollNext = React.useCallback(() => {\n api?.scrollNext();\n }, [api]);\n\n const handleKeyDown = React.useCallback(\n (event: React.KeyboardEvent<HTMLDivElement>) => {\n if (event.key === 'ArrowLeft') {\n event.preventDefault();\n scrollPrev();\n } else if (event.key === 'ArrowRight') {\n event.preventDefault();\n scrollNext();\n }\n },\n [scrollPrev, scrollNext]\n );\n\n React.useEffect(() => {\n if (!api || !setApi) {\n return;\n }\n\n setApi(api);\n }, [api, setApi]);\n\n React.useEffect(() => {\n if (!api) {\n return;\n }\n\n onSelect(api);\n api.on('reInit', onSelect);\n api.on('select', onSelect);\n\n return () => {\n api?.off('select', onSelect);\n };\n }, [api, onSelect]);\n\n return (\n <CarouselContext.Provider\n value={{\n carouselRef,\n api,\n opts,\n orientation:\n orientation || (opts?.axis === 'y' ? 'vertical' : 'horizontal'),\n scrollPrev,\n scrollNext,\n canScrollPrev,\n canScrollNext,\n }}\n >\n <div\n ref={ref}\n onKeyDownCapture={handleKeyDown}\n className={cn('relative', className)}\n role=\"region\"\n aria-roledescription=\"carousel\"\n {...props}\n >\n {children}\n </div>\n </CarouselContext.Provider>\n );\n }\n);\nCarousel.displayName = 'Carousel';\n\nconst CarouselContent = React.forwardRef<\n HTMLDivElement,\n React.HTMLAttributes<HTMLDivElement>\n>(({ className, ...props }, ref) => {\n const { carouselRef, orientation } = useCarousel();\n\n return (\n <div ref={carouselRef} className=\"overflow-hidden\">\n <div\n ref={ref}\n className={cn(\n 'flex',\n orientation === 'horizontal' ? '-ml-4' : '-mt-4 flex-col',\n className\n )}\n {...props}\n />\n </div>\n );\n});\nCarouselContent.displayName = 'CarouselContent';\n\nconst CarouselItem = React.forwardRef<\n HTMLDivElement,\n React.HTMLAttributes<HTMLDivElement>\n>(({ className, ...props }, ref) => {\n const { orientation } = useCarousel();\n\n return (\n <div\n ref={ref}\n role=\"group\"\n aria-roledescription=\"slide\"\n className={cn(\n 'min-w-0 shrink-0 grow-0 basis-full',\n orientation === 'horizontal' ? 'pl-4' : 'pt-4',\n className\n )}\n {...props}\n />\n );\n});\nCarouselItem.displayName = 'CarouselItem';\n\nconst CarouselPrevious = React.forwardRef<\n HTMLButtonElement,\n React.ComponentProps<typeof Button>\n>(({ className, variant = 'outline', size = 'icon', ...props }, ref) => {\n const { orientation, scrollPrev, canScrollPrev } = useCarousel();\n\n return (\n <Button\n ref={ref}\n variant={variant}\n size={size}\n className={cn(\n 'absolute h-8 w-8 rounded-full',\n orientation === 'horizontal'\n ? '-left-12 top-1/2 -translate-y-1/2'\n : '-top-12 left-1/2 -translate-x-1/2 rotate-90',\n className\n )}\n disabled={!canScrollPrev}\n onClick={scrollPrev}\n {...props}\n >\n <ArrowLeft className=\"h-6 w-6\" />\n <span className=\"sr-only\">Previous slide</span>\n </Button>\n );\n});\nCarouselPrevious.displayName = 'CarouselPrevious';\n\nconst CarouselNext = React.forwardRef<\n HTMLButtonElement,\n React.ComponentProps<typeof Button>\n>(({ className, variant = 'outline', size = 'icon', ...props }, ref) => {\n const { orientation, scrollNext, canScrollNext } = useCarousel();\n\n return (\n <Button\n ref={ref}\n variant={variant}\n size={size}\n className={cn(\n 'absolute h-8 w-8 rounded-full',\n orientation === 'horizontal'\n ? '-right-12 top-1/2 -translate-y-1/2'\n : '-bottom-12 left-1/2 -translate-x-1/2 rotate-90',\n className\n )}\n disabled={!canScrollNext}\n onClick={scrollNext}\n {...props}\n >\n <ArrowRight className=\"h-6 w-6\" />\n <span className=\"sr-only\">Next slide</span>\n </Button>\n );\n});\nCarouselNext.displayName = 'CarouselNext';\n\nexport {\n type CarouselApi,\n Carousel,\n CarouselContent,\n CarouselItem,\n CarouselPrevious,\n CarouselNext,\n};\n","interface IconProps {\n width?: string;\n height?: string;\n className?: string;\n}\n\nfunction Vetric({ width = '200', height = '70.701', className }: IconProps) {\n return (\n <svg\n xmlns=\"http://www.w3.org/2000/svg\"\n width={width}\n height={height}\n viewBox=\"0 0 200 70.701\"\n className={className}\n >\n <g transform=\"translate(0 -0.299)\">\n <path\n d=\"M37.475,54.819a.777.777,0,0,0-.232-.161,3.242,3.242,0,0,0-.5-.25,4.719,4.719,0,0,0-.661-.232,2.386,2.386,0,0,0-.714-.107c-.643,0-.982.214-.982.661a.549.549,0,0,0,.107.339,1.047,1.047,0,0,0,.3.232,2.424,2.424,0,0,0,.518.2c.214.054.446.125.714.2a9.7,9.7,0,0,1,1.018.339,2.9,2.9,0,0,1,.768.446,1.628,1.628,0,0,1,.482.661,2.585,2.585,0,0,1-.071,2.053,2.23,2.23,0,0,1-.661.75,2.674,2.674,0,0,1-.946.411,4.432,4.432,0,0,1-1.089.125,5.152,5.152,0,0,1-.893-.071,5.333,5.333,0,0,1-.893-.2,6.7,6.7,0,0,1-.839-.3,5.035,5.035,0,0,1-.75-.411l.8-1.589a2.17,2.17,0,0,0,.286.214,2.74,2.74,0,0,0,.607.3,5.938,5.938,0,0,0,.8.286,3.08,3.08,0,0,0,.893.125q.964,0,.964-.589a.5.5,0,0,0-.143-.357,1.864,1.864,0,0,0-.393-.268c-.179-.071-.375-.143-.607-.214s-.482-.143-.75-.214a7.056,7.056,0,0,1-.946-.357,2.671,2.671,0,0,1-.661-.446,1.627,1.627,0,0,1-.393-.589,2.038,2.038,0,0,1-.125-.768,2.383,2.383,0,0,1,.857-1.892,3.086,3.086,0,0,1,.928-.5,3.773,3.773,0,0,1,1.107-.161,4.075,4.075,0,0,1,.8.071c.268.054.518.125.768.2a5.961,5.961,0,0,1,.678.286c.214.107.411.214.589.3Zm6.124,4a1.552,1.552,0,0,0,.786-.2A1.439,1.439,0,0,0,44.9,58.1a2.408,2.408,0,0,0,.286-.732,4.467,4.467,0,0,0,.089-.839V52.515H47.1v4.017a6.025,6.025,0,0,1-.2,1.535,3.491,3.491,0,0,1-.625,1.232,3.021,3.021,0,0,1-1.089.839,3.852,3.852,0,0,1-1.571.3,3.685,3.685,0,0,1-1.607-.321,2.852,2.852,0,0,1-1.071-.857,3.267,3.267,0,0,1-.607-1.25,5.711,5.711,0,0,1-.2-1.482V52.515h1.821v4.017a4.351,4.351,0,0,0,.089.857,2.408,2.408,0,0,0,.286.732,1.439,1.439,0,0,0,.518.518,1.373,1.373,0,0,0,.75.179m5.57,1.553V52.515h3.357a2.259,2.259,0,0,1,1.036.232,2.513,2.513,0,0,1,.8.607,2.8,2.8,0,0,1,.732,1.821,2.749,2.749,0,0,1-.179,1,2.622,2.622,0,0,1-.518.857,2.334,2.334,0,0,1-.786.589,2.442,2.442,0,0,1-1.036.214H50.99v2.535Zm1.821-4.106h1.482a.685.685,0,0,0,.553-.286,1.168,1.168,0,0,0,.232-.8,1.368,1.368,0,0,0-.071-.482,1.058,1.058,0,0,0-.2-.339.748.748,0,0,0-.286-.2.99.99,0,0,0-.3-.054H50.99Zm11.266,2.517v1.589H56.721V52.515h5.428V54.1H58.542V55.64h3.107V57.1H58.542v1.678Zm1.768,1.589V52.515h3.535a2.136,2.136,0,0,1,1.018.232,2.808,2.808,0,0,1,.821.607,2.8,2.8,0,0,1,.732,1.821,2.856,2.856,0,0,1-.089.7,2.533,2.533,0,0,1-.25.643,2.376,2.376,0,0,1-.411.536,3.042,3.042,0,0,1-.536.411l1.732,2.928H68.523l-1.5-2.535H65.845v2.535H64.023Zm1.821-4.106H67.5a.706.706,0,0,0,.553-.3,1.211,1.211,0,0,0,.232-.786,1.058,1.058,0,0,0-.268-.768.77.77,0,0,0-.571-.286H65.845Zm5.82.107a3.949,3.949,0,0,1,.268-1.41,3.752,3.752,0,0,1,.768-1.25,3.9,3.9,0,0,1,1.232-.893,4.159,4.159,0,0,1,3.589.143,3.212,3.212,0,0,1,1.214,1.232l-1.393.982A1.535,1.535,0,0,0,77,54.658a1.969,1.969,0,0,0-.446-.339,1.674,1.674,0,0,0-.5-.179,2.511,2.511,0,0,0-.5-.054,1.9,1.9,0,0,0-.911.214,2.338,2.338,0,0,0-.643.536,1.857,1.857,0,0,0-.375.75,2.846,2.846,0,0,0-.125.857,3.012,3.012,0,0,0,.143.893,2.45,2.45,0,0,0,.411.768,1.971,1.971,0,0,0,1.518.714,2.38,2.38,0,0,0,.5-.054,1.716,1.716,0,0,0,.5-.2A1.564,1.564,0,0,0,77,58.229a2,2,0,0,0,.321-.5l1.482.875a2.244,2.244,0,0,1-.518.768,2.86,2.86,0,0,1-.8.571,4.454,4.454,0,0,1-.964.357,3.933,3.933,0,0,1-1,.125,3.561,3.561,0,0,1-1.571-.357,3.741,3.741,0,0,1-1.232-.928,3.959,3.959,0,0,1-1.053-2.767m15.5-3.856v7.856H85.341V57.14H82.2v3.232H80.378V52.515H82.2v3.053h3.142V52.515Zm4.3,0h1.643l2.874,7.856H94.125L93.518,58.6H91.054l-.589,1.768H88.608Zm1.75,4.856L92.3,54.586l-.946,2.785Zm4.2,3V52.515h3.535a2.136,2.136,0,0,1,1.018.232,2.807,2.807,0,0,1,.821.607,2.8,2.8,0,0,1,.732,1.821,2.856,2.856,0,0,1-.089.7,2.533,2.533,0,0,1-.25.643,2.376,2.376,0,0,1-.411.536,3.042,3.042,0,0,1-.536.411l1.732,2.928h-2.053l-1.5-2.535H99.231v2.535H97.41Zm1.821-4.106h1.66a.706.706,0,0,0,.553-.3,1.211,1.211,0,0,0,.232-.786,1.058,1.058,0,0,0-.268-.768.77.77,0,0,0-.571-.286H99.231ZM110.907,59.6a2.947,2.947,0,0,1-2.071.839,3.691,3.691,0,0,1-1.464-.286,3.492,3.492,0,0,1-1.2-.821,4.288,4.288,0,0,1-.821-1.285,4.14,4.14,0,0,1-.3-1.643,4.059,4.059,0,0,1,.3-1.535,4,4,0,0,1,.821-1.25,3.9,3.9,0,0,1,2.8-1.143,3.831,3.831,0,0,1,1.91.464,2.966,2.966,0,0,1,1.232,1.25l-1.357,1.018A1.9,1.9,0,0,0,110,54.39a2.114,2.114,0,0,0-1.089-.286,1.811,1.811,0,0,0-1.464.7,2.184,2.184,0,0,0-.411.75,3.067,3.067,0,0,0-.143.928,2.7,2.7,0,0,0,.161.946,2.569,2.569,0,0,0,.428.75,2.023,2.023,0,0,0,.661.5,1.863,1.863,0,0,0,.839.179,2.47,2.47,0,0,0,1.91-.982v-.25h-1.535V56.3h3.035v4.106h-1.5v-.8Zm8.891-.821v1.589h-5.535V52.515h5.428V54.1h-3.606V55.64h3.107V57.1h-3.107v1.678Zm5.856-6.267,1.7,3.606,1.714-3.606h1.982l-2.8,5.178v2.678h-1.8v-2.7l-2.749-5.16Zm9.695,7.927a3.574,3.574,0,0,1-1.589-.339,3.963,3.963,0,0,1-2.017-2.2,4.033,4.033,0,0,1,0-2.982,3.787,3.787,0,0,1,.821-1.268,4.146,4.146,0,0,1,1.25-.875,3.8,3.8,0,0,1,1.571-.321,3.573,3.573,0,0,1,1.589.339,3.963,3.963,0,0,1,2.017,2.2,4.184,4.184,0,0,1,.286,1.464,3.93,3.93,0,0,1-.286,1.5,3.787,3.787,0,0,1-.821,1.268,4.066,4.066,0,0,1-1.232.875,3.628,3.628,0,0,1-1.589.339m-2.035-3.981a2.881,2.881,0,0,0,.125.875,2.149,2.149,0,0,0,.393.75,2.338,2.338,0,0,0,.643.536,1.993,1.993,0,0,0,.893.2,1.9,1.9,0,0,0,.911-.214,2.12,2.12,0,0,0,.643-.553,2.054,2.054,0,0,0,.375-.768,3.124,3.124,0,0,0,0-1.75,2.149,2.149,0,0,0-.393-.75,2.008,2.008,0,0,0-.643-.518,1.971,1.971,0,0,0-.875-.2,2.131,2.131,0,0,0-.911.2,2.152,2.152,0,0,0-1.036,1.285,3.288,3.288,0,0,0-.125.911m11.051,2.357a1.552,1.552,0,0,0,.786-.2,1.439,1.439,0,0,0,.518-.518,2.408,2.408,0,0,0,.286-.732,4.467,4.467,0,0,0,.089-.839V52.515h1.821v4.017a6.024,6.024,0,0,1-.2,1.535,3.49,3.49,0,0,1-.625,1.232,3.021,3.021,0,0,1-1.089.839,3.852,3.852,0,0,1-1.571.3,3.685,3.685,0,0,1-1.607-.321,2.852,2.852,0,0,1-1.071-.857,3.267,3.267,0,0,1-.607-1.25,5.712,5.712,0,0,1-.2-1.482V52.515h1.821v4.017a4.35,4.35,0,0,0,.089.857,2.408,2.408,0,0,0,.286.732,1.439,1.439,0,0,0,.518.518,1.334,1.334,0,0,0,.75.179m5.57,1.553V52.515h3.535a2.136,2.136,0,0,1,1.018.232,2.808,2.808,0,0,1,.821.607,2.8,2.8,0,0,1,.732,1.821,2.857,2.857,0,0,1-.089.7,2.533,2.533,0,0,1-.25.643,2.375,2.375,0,0,1-.411.536,3.041,3.041,0,0,1-.536.411l1.732,2.928h-2.053l-1.5-2.535h-1.178v2.535h-1.821Zm1.8-4.106h1.66a.706.706,0,0,0,.553-.3,1.211,1.211,0,0,0,.232-.786,1.058,1.058,0,0,0-.268-.768.77.77,0,0,0-.571-.286h-1.607Zm9.07.107a3.949,3.949,0,0,1,.268-1.41,3.752,3.752,0,0,1,.768-1.25,3.9,3.9,0,0,1,1.232-.893,4.159,4.159,0,0,1,3.589.143,3.212,3.212,0,0,1,1.214,1.232l-1.393.982a1.535,1.535,0,0,0-.339-.518,1.969,1.969,0,0,0-.446-.339,1.674,1.674,0,0,0-.5-.179,2.511,2.511,0,0,0-.5-.054,1.9,1.9,0,0,0-.911.214,2.339,2.339,0,0,0-.643.536,1.858,1.858,0,0,0-.375.75,2.847,2.847,0,0,0-.125.857,3.012,3.012,0,0,0,.143.893,2.45,2.45,0,0,0,.411.768,1.971,1.971,0,0,0,1.518.714,2.38,2.38,0,0,0,.5-.054,1.716,1.716,0,0,0,.5-.2,1.564,1.564,0,0,0,.428-.339,2,2,0,0,0,.321-.5l1.482.875a2.244,2.244,0,0,1-.518.768,2.859,2.859,0,0,1-.8.571,4.454,4.454,0,0,1-.964.357,3.933,3.933,0,0,1-1,.125,3.561,3.561,0,0,1-1.571-.357,3.741,3.741,0,0,1-1.232-.928,3.959,3.959,0,0,1-1.053-2.767m10.552-.5v4.5h-1.821V52.515h1.41l3.66,4.624V52.515h1.821v7.856h-1.464Zm6.8.5a3.948,3.948,0,0,1,.268-1.41,3.752,3.752,0,0,1,.768-1.25,3.9,3.9,0,0,1,1.232-.893,4.159,4.159,0,0,1,3.589.143,3.212,3.212,0,0,1,1.214,1.232l-1.393.982a1.535,1.535,0,0,0-.339-.518,1.969,1.969,0,0,0-.446-.339,1.674,1.674,0,0,0-.5-.179,2.511,2.511,0,0,0-.5-.054,1.9,1.9,0,0,0-.911.214,2.338,2.338,0,0,0-.643.536,1.857,1.857,0,0,0-.375.75,2.847,2.847,0,0,0-.125.857,3.011,3.011,0,0,0,.143.893,2.449,2.449,0,0,0,.411.768,1.971,1.971,0,0,0,1.518.714,2.38,2.38,0,0,0,.5-.054,1.716,1.716,0,0,0,.5-.2,1.564,1.564,0,0,0,.428-.339,2,2,0,0,0,.321-.5l1.482.875a2.244,2.244,0,0,1-.518.768,2.865,2.865,0,0,1-.8.571,4.452,4.452,0,0,1-.964.357,3.932,3.932,0,0,1-1,.125,3.562,3.562,0,0,1-1.571-.357,3.743,3.743,0,0,1-1.232-.928,3.959,3.959,0,0,1-1.053-2.767M65.095,26.4a16.294,16.294,0,0,0-1.41-5.7,10.673,10.673,0,0,0-3.874-4.5,11.481,11.481,0,0,0-6.534-1.768,14.314,14.314,0,0,0-5.588,1.25A12.475,12.475,0,0,0,43.4,18.915,14.1,14.1,0,0,0,40.8,23.7a18.773,18.773,0,0,0-.875,5.838A17.93,17.93,0,0,0,41.885,37.7a13.094,13.094,0,0,0,5.07,5.3,14.731,14.731,0,0,0,7.124,1.91,15.97,15.97,0,0,0,8.338-2.089l2.8-1.714-2.071-3.553-1.91,1.2A10.381,10.381,0,0,1,58.4,39.893a23.683,23.683,0,0,1-3.249.428,7.635,7.635,0,0,1-4.321-1.357,9.545,9.545,0,0,1-3.2-3.714,11.589,11.589,0,0,1-1.178-4.767H65.345Zm-5.66-.107H46.491l.286-1.482a7.384,7.384,0,0,1,2.285-4.2,6.381,6.381,0,0,1,4.178-1.7,5.78,5.78,0,0,1,4.124,1.535,5.926,5.926,0,0,1,1.857,3.928ZM93.072,38.8a9.732,9.732,0,0,1-5.356,1.518,8.655,8.655,0,0,1-1.125-.054h-.018a7.783,7.783,0,0,1-5.731-3,12.419,12.419,0,0,1-2.607-6.784c0-.232,0-.446-.018-.607s-.018-.339-.036-.518a11.423,11.423,0,0,1,2.2-7.106,8.281,8.281,0,0,1,5.874-3.232c.786-.071,1.339-.107,1.643-.107a9.451,9.451,0,0,1,3.7.768l1.857.839,2.339-3.749-2.142-1a9.866,9.866,0,0,0-3.2-1.107,21.939,21.939,0,0,0-3.821-.286,15.073,15.073,0,0,0-6,1.232,14.354,14.354,0,0,0-4.713,3.321,14.727,14.727,0,0,0-3.035,4.945,17.14,17.14,0,0,0-1.053,5.981,16.255,16.255,0,0,0,1.946,7.677,13.827,13.827,0,0,0,5.07,5.267A15.556,15.556,0,0,0,86,44.945h.018a18.31,18.31,0,0,0,4.785-.625,13.337,13.337,0,0,0,3.553-1.393l2.178-1.375-1.91-3.767Zm23.692,1.071a6.479,6.479,0,0,1-2.428.607,4,4,0,0,1-1.982-.571,3.128,3.128,0,0,1-1.375-2.142,25.268,25.268,0,0,1-.3-4.356V19.147h7.249V15.13h-7.249V6.346l-6.035,2.16V15.13h-4v4.017h4v15.6c0,3.678.821,6.3,2.428,7.82a9.438,9.438,0,0,0,6.481,2.16A8.944,8.944,0,0,0,117.37,44l2.607-1.25-1.678-3.66Zm23.085-24.442a7.032,7.032,0,0,0-3.856-1.089H135.9a3.854,3.854,0,0,0-1.785.8,9.907,9.907,0,0,0-1.535,1.643l-1.16,1.535V15.148h-6.106v29.1h6.213V26.681a8.809,8.809,0,0,1,1.036-4.517,3.877,3.877,0,0,1,2.357-1.946,9.342,9.342,0,0,1,2.571.339,3.447,3.447,0,0,1,1.41.643l.446.446,2.785-4-.143-.286a5.66,5.66,0,0,0-2.142-1.928m44.206,22.353-1.571,1.036a9.732,9.732,0,0,1-5.356,1.518A8.655,8.655,0,0,1,176,40.286h-.018a7.783,7.783,0,0,1-5.731-3,12.419,12.419,0,0,1-2.607-6.784c0-.232,0-.428-.018-.607-.018-.161-.018-.339-.036-.518a11.423,11.423,0,0,1,2.2-7.106,8.281,8.281,0,0,1,5.874-3.232c.786-.071,1.339-.107,1.643-.107a9.451,9.451,0,0,1,3.7.768l1.857.839L185.2,16.79l-2.142-1a9.866,9.866,0,0,0-3.2-1.107,21.939,21.939,0,0,0-3.821-.286,15.073,15.073,0,0,0-6,1.232,14.354,14.354,0,0,0-4.713,3.321A14.727,14.727,0,0,0,162.29,23.9a17.14,17.14,0,0,0-1.053,5.981,16.255,16.255,0,0,0,1.946,7.677,13.959,13.959,0,0,0,5.07,5.267,15.556,15.556,0,0,0,7.159,2.142h.018a18.31,18.31,0,0,0,4.785-.625,13.337,13.337,0,0,0,3.553-1.393l2.2-1.375ZM147.918,2.579h6.213V8.792h-6.213Zm0,12.123h6.213V44.249h-6.213ZM32.012,27.092h0c-.036.054-2.553,3.7-3.714,5.2a36.632,36.632,0,0,1-7,6.517,12.607,12.607,0,0,0-1.66,1.393,11.285,11.285,0,0,0-.768.857,10.328,10.328,0,0,0-1.107,1.66,14.678,14.678,0,0,1,.7-5.2c1.3-4.035,4.178-6.731,6.338-8.766a33.835,33.835,0,0,1,5.07-3.892C32.744,22.9,36.3,18.718,39.082,8.881c-1.25,1.928-3.232,4.66-10.409,11.141-.446.393-.875.821-1.321,1.25a47.719,47.719,0,0,0-7.141,8.963q-4.847-13.9-9.677-27.816H0C8.784,24.967,15.194,41.393,15.551,42.392a5.561,5.561,0,0,0,1.107,1.839,4.059,4.059,0,0,0,.393.393,4.3,4.3,0,0,0,2.767.732,5.42,5.42,0,0,0,2.66-.464c.054-.018.089-.054.125-.054A5.934,5.934,0,0,0,24.281,43.3c.5-.8,3.678-7.249,7.731-16.211M26.62,14.13c-.357,1.178-.643,2.16-.839,2.821A37.017,37.017,0,0,1,39.867,2.4H33.815a5.013,5.013,0,0,0-1.821.446c-1.964.928-2.91,3.035-5.374,11.284\"\n transform=\"translate(0 -1.672)\"\n />\n <path\n d=\"M270.253,70.7H98.5l.036-17.979a2.321,2.321,0,1,1,4.642,0l-.018,13.337H270.271a6.156,6.156,0,0,0,6.035-6.249V11.087a6.7,6.7,0,0,0-.214-1.714A7.592,7.592,0,0,0,274.5,6.624C272.52,4.553,269.039,4.66,268.9,4.66l-24.781-.018a2.321,2.321,0,0,1,0-4.642l24.656.036c.857-.036,5.767-.054,9.052,3.392a12.107,12.107,0,0,1,2.714,4.749,10.905,10.905,0,0,1,.375,2.946V59.81A10.8,10.8,0,0,1,270.253,70.7\"\n transform=\"translate(-80.914 0.299)\"\n fill=\"#ffc000\"\n />\n </g>\n </svg>\n );\n}\n\nexport default Vetric;\n","export default \"__VITE_ASSET__JNxKjegM__\"","import { FileIcon } from 'lucide-react';\nimport { IPostAttachment } from '@/redux/post/post.d';\nimport { CarouselItem } from '../ui/carousel';\nimport Vetric from '../Icons/FileIcons/Vetric';\nimport carvecoIcon from '../Icons/FileIcons/carveco.png';\n\nconst getSoftwareToLink = (extension: string) => {\n switch (extension) {\n case 'art':\n return 'https://www.onefinitycnc.com/shop/category/software';\n case 'crv':\n return 'https://www.onefinitycnc.com/shop/category/software';\n default:\n return undefined;\n }\n};\n\nfunction NotSupportedFileIcon({ extension }: { extension: string }) {\n // move this to mimetype based when possible\n switch (extension) {\n case 'art':\n return (\n <img src={carvecoIcon} alt={extension} className=\"h-[100px] w-auto\" />\n );\n case 'crv':\n return <Vetric />;\n case 'crv3d':\n return <Vetric />;\n default:\n return <FileIcon width=\"50\" height=\"50\" />;\n }\n}\n\nfunction GetSupportedSoftware({ extension }: { extension: string }) {\n const softwareLink = getSoftwareToLink(extension);\n\n if (!softwareLink) {\n // eslint-disable-next-line react/jsx-no-useless-fragment\n return <></>;\n }\n\n return (\n <p className=\"font-secondary text-md\">\n Looking to view/work with this file. Get the supported software{' '}\n <a\n href={softwareLink}\n target=\"_blank\"\n rel=\"noreferrer\"\n className=\"underline text-blue-600\"\n >\n here\n </a>\n </p>\n );\n}\n\nfunction NotSupportedCarouselItem({\n attachment,\n}: {\n attachment: IPostAttachment;\n}) {\n const extension = attachment.fileName.split('.')[1];\n const softwareLink = getSoftwareToLink(extension);\n return (\n <CarouselItem className=\"h-full flex items-center justify-center bg-gray-200 rounded-md\">\n <div className=\"flex flex-col gap-3 items-center\">\n {/* eslint-disable-next-line jsx-a11y/control-has-associated-label */}\n <a href={softwareLink} target=\"_blank\" rel=\"noreferrer\">\n <NotSupportedFileIcon extension={extension} />\n </a>\n <h1 className=\"font-primary text-xl\">\n This media format cannot be displayed here\n </h1>\n <GetSupportedSoftware extension={extension} />\n </div>\n </CarouselItem>\n );\n}\n\nexport default NotSupportedCarouselItem;\n","import {\n lazy,\n SetStateAction,\n Suspense,\n useCallback,\n useEffect,\n useState,\n Dispatch,\n} from 'react';\nimport { ChevronLeft, ChevronRight } from 'lucide-react';\nimport {\n Carousel,\n CarouselContent,\n CarouselItem,\n type CarouselApi,\n} from '@/components/ui/carousel';\nimport { IPostAttachment, IPostAttachmentTypes } from '@/redux/post/post.d';\nimport { Button } from '@/components/ui/button';\nimport { Skeleton } from '../ui/skeleton';\nimport NotSupportedCarouselItem from './NotSupportedCarouselItem';\n\nconst Viewer = lazy(() => import('@/components/ModelViewer'));\ninterface PostDetailCarouselProps {\n attachments: IPostAttachment[];\n modelIndex: number;\n // eslint-disable-next-line react/require-default-props\n setModelIndex?: Dispatch<SetStateAction<number>>;\n}\n\nfunction PostCarouselItem({ attachment }: { attachment: IPostAttachment }) {\n switch (attachment.resourceType) {\n case IPostAttachmentTypes.IMAGE:\n return (\n <CarouselItem className=\"h-full\">\n <img\n src={attachment.url}\n alt={attachment._id}\n className=\"w-full h-full rounded-md object-contain\"\n />\n </CarouselItem>\n );\n case IPostAttachmentTypes.MODEL:\n return (\n <CarouselItem className=\"h-full\">\n <Suspense\n fallback={<Skeleton className=\"w-full h-full rounded-md\" />}\n >\n <Viewer modelURL={attachment.url} modelColor=\"green\" />\n </Suspense>\n </CarouselItem>\n );\n\n case IPostAttachmentTypes.YOUTUBE:\n return (\n <CarouselItem className=\"h-full\">\n <iframe\n title={attachment._id}\n src={attachment.url}\n className=\"w-full h-full rounded-md\"\n />\n </CarouselItem>\n );\n default:\n return <NotSupportedCarouselItem attachment={attachment} />;\n }\n}\n\nexport default function PostDetailCarousel({\n attachments,\n modelIndex,\n setModelIndex,\n}: PostDetailCarouselProps) {\n const [api, setApi] = useState<CarouselApi>();\n const [currentSlide, setCurrentSlide] = useState(0);\n const [canScrollPrev, setCanScrollPrev] = useState(false);\n const [canScrollNext, setCanScrollNext] = useState(false);\n\n useEffect(() => {\n if (!api) return;\n if (!setModelIndex) return;\n\n setCanScrollPrev(api.canScrollPrev());\n setCanScrollNext(api.canScrollNext());\n\n api.on('select', () => {\n setCurrentSlide(api.selectedScrollSnap());\n setModelIndex(api.selectedScrollSnap());\n setCanScrollPrev(api.canScrollPrev());\n setCanScrollNext(api.canScrollNext());\n });\n }, [api, setModelIndex]);\n\n const scrollPrev = useCallback(() => {\n if (!api) return;\n if (!setModelIndex) return;\n api.scrollPrev();\n setModelIndex(api.selectedScrollSnap());\n }, [api, setModelIndex]);\n\n const scrollNext = useCallback(() => {\n if (!api) return;\n if (!setModelIndex) return;\n api?.scrollNext();\n setModelIndex(api.selectedScrollSnap());\n }, [api, setModelIndex]);\n\n useEffect(() => {\n if (modelIndex) {\n if (modelIndex !== undefined && modelIndex !== -1) {\n api?.scrollTo(modelIndex);\n }\n } else {\n api?.scrollTo(0);\n }\n }, [modelIndex, attachments, api]);\n\n return (\n <div className=\"relative w-full max-w-3xl mx-auto py-8 text-center\">\n <Carousel setApi={setApi} className=\"w-full\">\n <CarouselContent className=\"h-[380px]\">\n {attachments?.map((attachment) => (\n <PostCarouselItem attachment={attachment} key={attachment._id} />\n ))}\n </CarouselContent>\n </Carousel>\n {attachments[currentSlide].resourceType !==\n IPostAttachmentTypes.YOUTUBE ? (\n <p>{attachments[currentSlide].fileName}</p>\n ) : (\n // eslint-disable-next-line react/jsx-no-useless-fragment\n <></>\n )}\n <div className=\"flex justify-between pt-4\">\n <Button\n variant=\"outline\"\n size=\"icon\"\n className=\"rounded-full bg-white/80 backdrop-blur-sm transition-opacity\"\n onClick={scrollPrev}\n disabled={!canScrollPrev}\n >\n <ChevronLeft className=\"h-4 w-4\" />\n <span className=\"sr-only\">Previous slide</span>\n </Button>\n <div className=\"absolute bottom-4 left-0 right-0 flex justify-center gap-2\">\n {attachments?.map((attachment, index) => (\n <Button\n key={attachment._id}\n variant={currentSlide === index ? 'default' : 'outline'}\n size=\"icon\"\n className=\"w-2 h-2 rounded-full p-0\"\n onClick={() => api?.scrollTo(index)}\n >\n <span className=\"sr-only\">Go to slide {index + 1}</span>\n </Button>\n ))}\n </div>\n <p>\n {currentSlide + 1}/{attachments?.length}\n </p>\n <Button\n variant=\"outline\"\n size=\"icon\"\n className=\"rounded-full bg-white/80 backdrop-blur-sm transition-opacity\"\n onClick={scrollNext}\n disabled={!canScrollNext}\n >\n <ChevronRight className=\"h-4 w-4\" />\n <span className=\"sr-only\">Next slide</span>\n </Button>\n </div>\n </div>\n );\n}\n","import { HomeIcon } from 'lucide-react';\nimport { Link } from 'react-router-dom';\nimport { Button } from '@/components/ui/button';\n\nexport default function NotFound() {\n return (\n <div className=\"flex flex-col items-center justify-center min-h-screen bg-gradient-to-b from-gray-50 to-gray-100 dark:from-gray-900 dark:to-gray-800 text-center px-4\">\n <h1 className=\"text-6xl font-bold text-gray-800 dark:text-gray-200 mb-4\">\n 404\n </h1>\n <p className=\"text-2xl text-gray-600 dark:text-gray-400 mb-8\">\n Oops! Page not found\n </p>\n <div className=\"max-w-md text-gray-500 dark:text-gray-400 mb-8\">\n <p>\n The page you are looking for might have been removed, had its name\n changed, or is temporarily unavailable.\n </p>\n </div>\n <Button asChild>\n <Link to=\"/\" className=\"inline-flex items-center\">\n <HomeIcon className=\"mr-2 h-4 w-4\" />\n <span>Go back home</span>\n </Link>\n </Button>\n </div>\n );\n}\n","import * as React from 'react';\nimport * as DialogPrimitive from '@radix-ui/react-dialog';\nimport { X } from 'lucide-react';\n\nimport { cn } from '@/lib/utils';\n\nconst Dialog = DialogPrimitive.Root;\n\nconst DialogTrigger = DialogPrimitive.Trigger;\n\nconst DialogPortal = DialogPrimitive.Portal;\n\nconst DialogClose = DialogPrimitive.Close;\n\nconst DialogOverlay = React.forwardRef<\n React.ElementRef<typeof DialogPrimitive.Overlay>,\n React.ComponentPropsWithoutRef<typeof DialogPrimitive.Overlay>\n>(({ className, ...props }, ref) => (\n <DialogPrimitive.Overlay\n ref={ref}\n className={cn(\n 'fixed inset-0 z-50 bg-black/80 data-[state=open]:animate-in data-[state=closed]:animate-out data-[state=closed]:fade-out-0 data-[state=open]:fade-in-0',\n className\n )}\n {...props}\n />\n));\nDialogOverlay.displayName = DialogPrimitive.Overlay.displayName;\n\ntype DialogContentProps = React.ComponentPropsWithoutRef<\n typeof DialogPrimitive.Content\n> & {\n closeDialog?: () => void;\n};\n\nconst DialogContent = React.forwardRef<\n React.ElementRef<typeof DialogPrimitive.Content>,\n DialogContentProps\n>(({ className, children, closeDialog, ...props }, ref) => (\n <DialogPortal>\n <DialogOverlay />\n <DialogPrimitive.Content\n ref={ref}\n className={cn(\n 'fixed left-[50%] top-[50%] z-50 grid w-full max-w-lg translate-x-[-50%] translate-y-[-50%] gap-4 border bg-background p-6 shadow-lg duration-200 data-[state=open]:animate-in data-[state=closed]:animate-out data-[state=closed]:fade-out-0 data-[state=open]:fade-in-0 data-[state=closed]:zoom-out-95 data-[state=open]:zoom-in-95 data-[state=closed]:slide-out-to-left-1/2 data-[state=closed]:slide-out-to-top-[48%] data-[state=open]:slide-in-from-left-1/2 data-[state=open]:slide-in-from-top-[48%] sm:rounded-lg',\n className\n )}\n {...props}\n >\n {children}\n <DialogPrimitive.Close\n onClick={(e) => {\n if (closeDialog) {\n e.stopPropagation();\n e.preventDefault();\n closeDialog();\n }\n }}\n className=\"absolute right-4 top-4 rounded-sm opacity-70 ring-offset-background transition-opacity hover:opacity-100 focus:outline-none focus:ring-2 focus:ring-ring focus:ring-offset-2 disabled:pointer-events-none data-[state=open]:bg-accent data-[state=open]:text-muted-foreground\"\n >\n <X className=\"h-4 w-4\" />\n <span className=\"sr-only\">Close</span>\n </DialogPrimitive.Close>\n </DialogPrimitive.Content>\n </DialogPortal>\n));\nDialogContent.displayName = DialogPrimitive.Content.displayName;\n\nconst DialogHeader = ({\n className,\n ...props\n}: React.HTMLAttributes<HTMLDivElement>) => (\n <div\n className={cn(\n 'flex flex-col space-y-1.5 text-center sm:text-left',\n className\n )}\n {...props}\n />\n);\nDialogHeader.displayName = 'DialogHeader';\n\nconst DialogFooter = ({\n className,\n ...props\n}: React.HTMLAttributes<HTMLDivElement>) => (\n <div\n className={cn(\n 'flex flex-col-reverse sm:flex-row sm:justify-end sm:space-x-2',\n className\n )}\n {...props}\n />\n);\nDialogFooter.displayName = 'DialogFooter';\n\nconst DialogTitle = React.forwardRef<\n React.ElementRef<typeof DialogPrimitive.Title>,\n React.ComponentPropsWithoutRef<typeof DialogPrimitive.Title>\n>(({ className, ...props }, ref) => (\n <DialogPrimitive.Title\n ref={ref}\n className={cn(\n 'text-lg font-semibold leading-none tracking-tight',\n className\n )}\n {...props}\n />\n));\nDialogTitle.displayName = DialogPrimitive.Title.displayName;\n\nconst DialogDescription = React.forwardRef<\n React.ElementRef<typeof DialogPrimitive.Description>,\n React.ComponentPropsWithoutRef<typeof DialogPrimitive.Description>\n>(({ className, ...props }, ref) => (\n <DialogPrimitive.Description\n ref={ref}\n className={cn('text-sm text-muted-foreground', className)}\n {...props}\n />\n));\nDialogDescription.displayName = DialogPrimitive.Description.displayName;\n\nexport {\n Dialog,\n DialogPortal,\n DialogOverlay,\n DialogClose,\n DialogTrigger,\n DialogContent,\n DialogHeader,\n DialogFooter,\n DialogTitle,\n DialogDescription,\n};\n","/* eslint-disable react/require-default-props */\nfunction Facebook({\n color = '#1877F2',\n backgroundColor = '#fff',\n height = '24',\n width = '25',\n}: {\n color?: string;\n backgroundColor?: string;\n height?: string;\n width?: string;\n}) {\n return (\n <svg\n width={width}\n height={height}\n viewBox={`0 0 ${width} ${height}`}\n fill=\"none\"\n xmlns=\"http://www.w3.org/2000/svg\"\n >\n <g clipPath=\"url(#clip0_752_2679)\">\n <path\n d=\"M24.333 12C24.333 5.37258 18.9604 0 12.333 0C5.70559 0 0.333008 5.37258 0.333008 12C0.333008 17.9895 4.72121 22.954 10.458 23.8542V15.4688H7.41113V12H10.458V9.35625C10.458 6.34875 12.2496 4.6875 14.9906 4.6875C16.3031 4.6875 17.6768 4.92188 17.6768 4.92188V7.875H16.1636C14.673 7.875 14.208 8.80008 14.208 9.75V12H17.5361L17.0041 15.4688H14.208V23.8542C19.9448 22.954 24.333 17.9895 24.333 12Z\"\n fill={color}\n />\n <path\n d=\"M17.0041 15.4688L17.5361 12H14.208V9.75C14.208 8.80102 14.673 7.875 16.1636 7.875H17.6768V4.92188C17.6768 4.92188 16.3036 4.6875 14.9906 4.6875C12.2496 4.6875 10.458 6.34875 10.458 9.35625V12H7.41113V15.4688H10.458V23.8542C11.7005 24.0486 12.9656 24.0486 14.208 23.8542V15.4688H17.0041Z\"\n fill={backgroundColor}\n />\n </g>\n <defs>\n <clipPath id=\"clip0_752_2679\">\n <rect\n width={height}\n height={height}\n fill={backgroundColor}\n transform=\"translate(0.333008)\"\n />\n </clipPath>\n </defs>\n </svg>\n );\n}\n\nexport default Facebook;\n","/* eslint-disable react/require-default-props */\nfunction Twitter({\n width = '24',\n height = '22',\n}: {\n width?: string;\n height?: string;\n}) {\n return (\n <svg\n width={width}\n height={height}\n viewBox=\"0 0 24 22\"\n fill=\"none\"\n xmlns=\"http://www.w3.org/2000/svg\"\n >\n <path\n fillRule=\"evenodd\"\n clipRule=\"evenodd\"\n d=\"M15.6115 22L10.0621 14.0901L3.11488 22H0.175781L8.7581 12.2311L0.175781 0H7.72173L12.952 7.45502L19.5053 0H22.4444L14.2603 9.31648L23.1574 22H15.6115ZM18.8845 19.77H16.9058L4.38413 2.23H6.36312L11.3781 9.25316L12.2454 10.4719L18.8845 19.77Z\"\n fill=\"#242E36\"\n />\n </svg>\n );\n}\n\nexport default Twitter;\n","import { useState, MouseEvent } from 'react';\nimport { toast } from 'sonner';\nimport { Share2 } from 'lucide-react';\nimport { Button } from '@/components/ui/button';\nimport { Input } from '@/components/ui/input';\nimport {\n Dialog,\n DialogContent,\n DialogHeader,\n DialogTitle,\n DialogTrigger,\n} from '@/components/ui/dialog';\nimport Facebook from '../Icons/Facebook';\nimport Twitter from '../Icons/Twitter';\n// import Pinterest from '../Icons/Pinterest';\n// import Reddit from '../Icons/Reddit';\n\nconst socialPlatforms = [\n {\n name: 'Facebook',\n icon: <Facebook />,\n url: 'https://www.facebook.com/sharer/sharer.php?u=',\n },\n {\n name: 'X',\n icon: <Twitter />,\n url: 'https://twitter.com/intent/tweet?url=',\n },\n // {\n // name: 'Telegram',\n // icon: <Telegram />,\n // url: 'https://t.me/share/url?url=',\n // },\n // {\n // name: 'Pinterest',\n // icon: <Pinterest />,\n // url: 'https://www.pinterest.com/pin/create/button/?url=',\n // },\n // {\n // name: 'Reddit',\n // icon: <Reddit />,\n // url: 'https://www.reddit.com/submit?url=',\n // },\n // {\n // name: 'WhatsApp',\n // icon: '/whatsapp-icon.svg',\n // url: 'https://api.whatsapp.com/send?text=',\n // },\n];\n\nfunction WebShare({ shareUrl }: { shareUrl: string }) {\n if (!navigator.share) {\n return <div />;\n }\n\n const handleWebShare = async (e: MouseEvent<HTMLButtonElement>) => {\n e.stopPropagation();\n e.preventDefault();\n try {\n await navigator.share({\n title: 'Filefinity',\n text: 'Check out this amazing file sharing platform!',\n url: shareUrl,\n });\n } catch (error) {\n // eslint-disable-next-line no-console\n console.error('Error sharing:', error);\n }\n };\n\n return (\n <Button\n variant=\"outline\"\n type=\"button\"\n onClick={handleWebShare}\n className=\"rounded-lg hover:bg-accent border-[#EAECF0] border-[1.5px] p-3\"\n >\n <Share2 />\n </Button>\n );\n}\n\nfunction ShareButton({\n shareUrl,\n size = 'sm',\n}: {\n shareUrl: string;\n size?: 'sm' | 'md' | 'lg';\n}) {\n const [copied, setCopied] = useState(false);\n const [open, setOpen] = useState(false);\n\n const handleShare = (platform: string, e: MouseEvent<HTMLButtonElement>) => {\n e.stopPropagation();\n e.preventDefault();\n const platformDetails = socialPlatforms.find((p) => p.name === platform);\n\n if (platformDetails) {\n const shareLink = platformDetails.url + encodeURIComponent(shareUrl);\n window.open(shareLink, '_blank');\n }\n };\n\n const copyLink = (e: MouseEvent<HTMLButtonElement>) => {\n e.stopPropagation();\n e.preventDefault();\n navigator.clipboard.writeText(shareUrl);\n toast.success('Copied URL to clipboard');\n setCopied(true);\n setTimeout(() => setCopied(false), 2000);\n };\n\n return (\n <Dialog open={open} onOpenChange={setOpen}>\n <DialogTrigger asChild>\n <Button\n variant=\"outline\"\n size={size}\n onClick={(e) => {\n e.stopPropagation();\n e.preventDefault();\n setOpen(true);\n }}\n >\n <div className=\"flex items-center gap-1 justify-center\">\n <Share2 size={16} />\n <p>Share</p>\n </div>\n </Button>\n </DialogTrigger>\n <DialogContent className=\"sm:max-w-md\" closeDialog={() => setOpen(false)}>\n <DialogHeader>\n <DialogTitle className=\"text-[20px] sm:text-2xl font-primary text-left\">\n Share with your friends!\n </DialogTitle>\n </DialogHeader>\n <div className=\"flex flex-col space-y-4\">\n <p className=\"text-sm text-muted-foreground font-secondary\">\n Share this post via\n </p>\n <div className=\"flex flex-wrap gap-4\">\n {socialPlatforms.map((platform) => (\n <Button\n variant=\"outline\"\n type=\"button\"\n key={platform.name}\n onClick={(e) => handleShare(platform.name, e)}\n className=\"rounded-lg hover:bg-accent border-[#EAECF0] border-[1.5px] p-3 min-w-[44px]\"\n >\n {platform.icon}\n </Button>\n ))}\n <WebShare shareUrl={shareUrl} />\n </div>\n <p className=\"text-sm text-muted-foreground font-secondary\">\n or copy link\n </p>\n <div className=\"flex items-center space-x-2\">\n <Input\n value={shareUrl}\n readOnly\n className=\"flex-grow font-tertiary\"\n />\n <Button onClick={copyLink} variant=\"default\">\n {copied ? 'Copied!' : 'Copy'}\n </Button>\n </div>\n </div>\n </DialogContent>\n </Dialog>\n );\n}\n\nexport default ShareButton;\n","import * as React from 'react';\n\nimport { cn } from '@/lib/utils';\n\nconst Table = React.forwardRef<\n HTMLTableElement,\n React.HTMLAttributes<HTMLTableElement>\n>(({ className, ...props }, ref) => (\n <div className=\"relative w-full overflow-auto\">\n <table\n ref={ref}\n className={cn('w-full caption-bottom text-sm', className)}\n {...props}\n />\n </div>\n));\nTable.displayName = 'Table';\n\nconst TableHeader = React.forwardRef<\n HTMLTableSectionElement,\n React.HTMLAttributes<HTMLTableSectionElement>\n>(({ className, ...props }, ref) => (\n <thead ref={ref} className={cn('[&_tr]:border-b', className)} {...props} />\n));\nTableHeader.displayName = 'TableHeader';\n\nconst TableBody = React.forwardRef<\n HTMLTableSectionElement,\n React.HTMLAttributes<HTMLTableSectionElement>\n>(({ className, ...props }, ref) => (\n <tbody\n ref={ref}\n className={cn('[&_tr:last-child]:border-0', className)}\n {...props}\n />\n));\nTableBody.displayName = 'TableBody';\n\nconst TableFooter = React.forwardRef<\n HTMLTableSectionElement,\n React.HTMLAttributes<HTMLTableSectionElement>\n>(({ className, ...props }, ref) => (\n <tfoot\n ref={ref}\n className={cn(\n 'border-t bg-muted/50 font-medium [&>tr]:last:border-b-0',\n className\n )}\n {...props}\n />\n));\nTableFooter.displayName = 'TableFooter';\n\nconst TableRow = React.forwardRef<\n HTMLTableRowElement,\n React.HTMLAttributes<HTMLTableRowElement>\n>(({ className, ...props }, ref) => (\n <tr\n ref={ref}\n className={cn(\n 'border-b transition-colors hover:bg-muted/50 data-[state=selected]:bg-muted',\n className\n )}\n {...props}\n />\n));\nTableRow.displayName = 'TableRow';\n\nconst TableHead = React.forwardRef<\n HTMLTableCellElement,\n React.ThHTMLAttributes<HTMLTableCellElement>\n>(({ className, ...props }, ref) => (\n <th\n ref={ref}\n className={cn(\n 'h-12 px-4 text-left align-middle font-medium text-muted-foreground [&:has([role=checkbox])]:pr-0',\n className\n )}\n {...props}\n />\n));\nTableHead.displayName = 'TableHead';\n\nconst TableCell = React.forwardRef<\n HTMLTableCellElement,\n React.TdHTMLAttributes<HTMLTableCellElement>\n>(({ className, ...props }, ref) => (\n <td\n ref={ref}\n className={cn('p-4 align-middle [&:has([role=checkbox])]:pr-0', className)}\n {...props}\n />\n));\nTableCell.displayName = 'TableCell';\n\nconst TableCaption = React.forwardRef<\n HTMLTableCaptionElement,\n React.HTMLAttributes<HTMLTableCaptionElement>\n>(({ className, ...props }, ref) => (\n <caption\n ref={ref}\n className={cn('mt-4 text-sm text-muted-foreground', className)}\n {...props}\n />\n));\nTableCaption.displayName = 'TableCaption';\n\nexport {\n Table,\n TableHeader,\n TableBody,\n TableFooter,\n TableHead,\n TableRow,\n TableCell,\n TableCaption,\n};\n","import { useState } from 'react';\nimport { FileIcon, ImageIcon, FileBox, Loader2 } from 'lucide-react';\nimport { toast } from 'sonner';\nimport { Button } from '@/components/ui/button';\nimport {\n Dialog,\n DialogContent,\n DialogHeader,\n DialogTitle,\n DialogTrigger,\n} from '@/components/ui/dialog';\nimport {\n IAttachmentCategory,\n IPostAttachment,\n IPostAttachmentTypes,\n} from './post.d';\nimport {\n Table,\n TableBody,\n TableCell,\n TableHead,\n TableHeader,\n TableRow,\n} from '@/components/ui/table';\nimport { useFileDownloader } from '@/lib/s3';\nimport { filterAttachments } from './post.utils';\n\nexport default function DownloadModal({\n attachments,\n postTitle,\n}: {\n attachments: IPostAttachment[];\n postTitle: string;\n}) {\n const [open, setOpen] = useState(false);\n const { downloadFile } = useFileDownloader();\n const [downloadingId, setDownloadingId] = useState<string | null>(null);\n const getFileIcon = (attachment: IPostAttachment) => {\n switch (attachment.resourceType) {\n case IPostAttachmentTypes.MODEL:\n return <FileBox className=\"h-4 w-4 sm:h-6 sm:w-6\" />;\n case IPostAttachmentTypes.IMAGE:\n return <ImageIcon className=\"h-4 w-4 sm:h-6 sm:w-6\" />;\n default:\n return <FileIcon className=\"h-4 w-4 sm:h-6 sm:w-6\" />;\n }\n };\n\n const getFileExtension = (url: string) => {\n const matches = url.match(/\\.([0-9a-z]+)(?=[?#]|$)/i);\n return matches ? matches[1] : 'download';\n };\n\n const handleDownload = async (attachment: IPostAttachment) => {\n setDownloadingId(attachment._id);\n try {\n await downloadFile(attachment.resourcePath, attachment.fileName);\n } catch (error) {\n toast.error('Failed to download file, please try again later.');\n } finally {\n setDownloadingId(null);\n }\n };\n\n const handleDownloadAll = async () => {\n const postAttachmentsZip = attachments.find((attachment) => {\n if (\n attachment.resourceType === IPostAttachmentTypes.ZIP &&\n attachment.category === IAttachmentCategory.postZip\n ) {\n return true;\n }\n return false;\n });\n if (!postAttachmentsZip) {\n toast.error('Download all is currently unavailable', {\n description: 'Please try again later.',\n });\n return;\n }\n setDownloadingId('download_all');\n try {\n await downloadFile(\n postAttachmentsZip.resourcePath,\n postTitle.replace(/ /g, '_')\n );\n } catch (error) {\n toast.error('Failed to download files, please try again later.');\n } finally {\n setDownloadingId(null);\n }\n };\n\n const filteredAttachments = filterAttachments(attachments);\n const totalAttachmentsDownloadCount = filteredAttachments.reduce(\n (count, attachment) => count + (attachment.downloadCount || 0),\n 0\n );\n const totalDownloadCount = Math.round(\n totalAttachmentsDownloadCount / filteredAttachments.length\n );\n\n return (\n <Dialog open={open} onOpenChange={setOpen}>\n <DialogTrigger asChild>\n <div className=\"bg-secondary rounded-full\">\n <Button variant=\"gradient\" size=\"md\">\n Download  \n <span className=\"flex flex-col items-center justify-center h-5 w-5 bg-black bg-opacity-50 text-white rounded-full text-xs\">\n {totalDownloadCount}\n </span>\n </Button>\n </div>\n </DialogTrigger>\n <DialogContent className=\"w-[90vw] max-w-[550px] max-h-[90vh] p-4 flex flex-col\">\n <DialogHeader>\n <DialogTitle className=\"text-lg sm:text-2xl font-primary text-left\">\n Post Attachments\n </DialogTitle>\n </DialogHeader>\n <div>\n <div className=\"h-[400px] overflow-y-scroll\">\n <Table>\n <TableHeader>\n <TableRow>\n <TableHead className=\"w-[40px] sm:w-[50px]\">Type</TableHead>\n <TableHead>File Name</TableHead>\n <TableHead className=\"w-[60px] sm:w-[100px] text-center\">\n Format\n </TableHead>\n <TableHead className=\"w-[80px] sm:w-[100px] text-center\">\n Action\n </TableHead>\n </TableRow>\n </TableHeader>\n <TableBody>\n {filteredAttachments.length > 0 ? (\n filteredAttachments.map((attachment) => (\n <TableRow key={attachment._id}>\n <TableCell>{getFileIcon(attachment)}</TableCell>\n <TableCell>\n <p className=\"font-medium leading-none truncate max-w-[100px] sm:max-w-[200px]\">\n {attachment.fileName}\n </p>\n </TableCell>\n <TableCell className=\"text-center text-xs sm:text-sm\">\n {getFileExtension(attachment.url)}\n </TableCell>\n <TableCell>\n <div className=\"bg-secondary rounded-full\">\n <Button\n size=\"sm\"\n variant=\"gradient\"\n className=\"w-full text-xs sm:text-sm py-2 px-3 h-auto\"\n onClick={() => handleDownload(attachment)}\n >\n {downloadingId === attachment._id ? (\n <Loader2 className=\"mr-2 h-4 w-4 animate-spin text-white\" />\n ) : (\n 'Download'\n )}\n </Button>\n </div>\n </TableCell>\n </TableRow>\n ))\n ) : (\n <TableRow>\n <TableCell colSpan={4} className=\"text-center\">\n No attachments available\n </TableCell>\n </TableRow>\n )}\n <div className=\"pt-12\" />\n </TableBody>\n </Table>\n </div>\n <div className=\"mt-4 border-t pt-4\">\n <Button\n size=\"sm\"\n onClick={handleDownloadAll}\n className=\"w-full\"\n disabled={attachments.length === 0}\n >\n {downloadingId === 'download_all' ? (\n <Loader2 className=\"mr-2 h-4 w-4 animate-spin text-white\" />\n ) : (\n 'Download All'\n )}\n </Button>\n </div>\n </div>\n </DialogContent>\n </Dialog>\n );\n}\n","import React from 'react';\nimport { Card, CardContent } from '../ui/card';\n\nfunction DescriptionWithLinks({ description }: { description: string }) {\n const linkRegex = /https?:\\/\\/[^\\s]+/g;\n const tokens: Array<string | React.JSX.Element> = [];\n let lastIndex = 0;\n\n // Assign once before we start\n let match = linkRegex.exec(description);\n\n while (match !== null) {\n // Push text before the URL\n if (match.index > lastIndex) {\n tokens.push(description.slice(lastIndex, match.index));\n }\n\n // Push the URL as a clickable link\n tokens.push(\n <a\n key={`${match[0]}-${match.index}`}\n href={match[0]}\n target=\"_blank\"\n rel=\"noopener noreferrer\"\n className=\"text-blue-500 underline\"\n >\n {match[0]}\n </a>\n );\n\n lastIndex = linkRegex.lastIndex;\n // Reassign at the end of the loop\n match = linkRegex.exec(description);\n }\n\n // Push whatever’s left after the last URL\n if (lastIndex < description.length) {\n tokens.push(description.slice(lastIndex));\n }\n\n return (\n <Card>\n <CardContent className=\"pt-6\">\n <p className=\"whitespace-pre-wrap\">{tokens}</p>\n </CardContent>\n </Card>\n );\n}\n\nexport default DescriptionWithLinks;\n","/* eslint-disable react/jsx-no-useless-fragment */\nimport { Card, CardContent, CardHeader, CardTitle } from '@/components/ui/card';\nimport { IBuiltWith, IPostDetailResponse } from '@/redux/post/post.d';\n\nfunction OnefinityDetailsCard({ post }: { post: IPostDetailResponse }) {\n const { onefinityController, onefinityModel, onefinitySize, builtWith } =\n post;\n\n if (!onefinityController && !onefinityModel && !onefinitySize) {\n return <></>;\n }\n\n if (builtWith !== IBuiltWith.ONEFINITY) {\n return <></>;\n }\n\n return onefinityController || onefinityModel || onefinitySize ? (\n <Card className=\"my-5\">\n <CardHeader>\n <CardTitle>CNC Machine Details</CardTitle>\n </CardHeader>\n <CardContent>\n <dl className=\"grid gap-2 text-sm\">\n {builtWith === IBuiltWith.ONEFINITY ? (\n <div className=\"grid grid-cols-2\">\n <dt className=\"font-medium text-muted-foreground\">Brand:</dt>\n <dd>Onefinity</dd>\n </div>\n ) : (\n <></>\n )}\n {onefinityModel ? (\n <div className=\"grid grid-cols-2\">\n <dt className=\"font-medium text-muted-foreground\">Model:</dt>\n <dd>{onefinityModel}</dd>\n </div>\n ) : (\n <></>\n )}\n {onefinityController ? (\n <div className=\"grid grid-cols-2\">\n <dt className=\"font-medium text-muted-foreground\">Controller:</dt>\n <dd>{onefinityController}</dd>\n </div>\n ) : (\n <></>\n )}\n {onefinitySize ? (\n <div className=\"grid grid-cols-2\">\n <dt className=\"font-medium text-muted-foreground\">Size:</dt>\n <dd>{onefinitySize}</dd>\n </div>\n ) : (\n <></>\n )}\n </dl>\n </CardContent>\n </Card>\n ) : (\n <></>\n );\n}\n\nexport default OnefinityDetailsCard;\n","import * as React from 'react';\nimport * as SwitchPrimitives from '@radix-ui/react-switch';\n\nimport { cn } from '@/lib/utils';\n\nconst Switch = React.forwardRef<\n React.ElementRef<typeof SwitchPrimitives.Root>,\n React.ComponentPropsWithoutRef<typeof SwitchPrimitives.Root>\n>(({ className, ...props }, ref) => (\n <SwitchPrimitives.Root\n className={cn(\n 'peer inline-flex h-6 w-11 shrink-0 cursor-pointer items-center rounded-full border-2 border-transparent transition-colors focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-ring focus-visible:ring-offset-2 focus-visible:ring-offset-background disabled:cursor-not-allowed disabled:opacity-50 data-[state=checked]:bg-slate-400 data-[state=unchecked]:bg-input',\n className\n )}\n {...props}\n ref={ref}\n >\n <SwitchPrimitives.Thumb\n className={cn(\n 'pointer-events-none block h-5 w-5 rounded-full bg-foreground shadow-lg ring-0 transition-transform data-[state=checked]:translate-x-5 data-[state=unchecked]:translate-x-0'\n )}\n />\n </SwitchPrimitives.Root>\n));\nSwitch.displayName = SwitchPrimitives.Root.displayName;\n\nexport { Switch };\n","import { useState, useEffect, Dispatch, SetStateAction } from 'react';\nimport { Eye, InfoIcon, Layers } from 'lucide-react';\nimport {\n TableCell,\n Table,\n TableBody,\n TableHead,\n TableHeader,\n TableRow,\n} from '@/components/ui/table';\nimport { Button } from '@/components/ui/button';\nimport { Switch } from '@/components/ui/switch';\nimport { Card, CardContent, CardHeader, CardTitle } from '@/components/ui/card';\nimport { IPostAttachmentTypes, IPostDetailResponse } from '@/redux/post/post.d';\nimport { filterAttachmentsForCarousel } from '@/redux/post/post.utils';\n\nfunction ToolsDataCard({\n post,\n modelIndex,\n setModelIndex,\n}: {\n post: IPostDetailResponse;\n modelIndex: number;\n setModelIndex: Dispatch<SetStateAction<number>>;\n}) {\n const { attachments, toolData } = post;\n const [showRelatedTools, setShowRelatedTools] = useState<boolean>(false);\n const [filteredToolData, setFilteredToolData] = useState(post?.toolData);\n\n useEffect(() => {\n if (!post) return;\n const currentAttachment =\n filterAttachmentsForCarousel(attachments)[modelIndex];\n if (currentAttachment.resourceType !== IPostAttachmentTypes.MODEL) {\n setShowRelatedTools(false);\n setFilteredToolData(toolData);\n }\n const filteredData = showRelatedTools\n ? toolData.filter((tool) => tool.modelId === currentAttachment._id)\n : toolData;\n setFilteredToolData(filteredData);\n }, [modelIndex, toolData, attachments, showRelatedTools, post]);\n\n const handleCheckboxChange = () => {\n setShowRelatedTools(!showRelatedTools);\n };\n\n if (!toolData.length) {\n // eslint-disable-next-line react/jsx-no-useless-fragment\n return <></>;\n }\n\n return (\n <Card className=\"my-5\">\n <CardHeader className=\"flex flex-row items-center justify-between\">\n <div className=\"flex gap-2 items-center\">\n <Layers className=\"h-5 w-5\" />\n <CardTitle>Tools Data</CardTitle>\n </div>\n <div className=\"flex items-center space-x-2\">\n <span className=\"text-sm text-muted-foreground flex gap-2 items-center\">\n <InfoIcon size=\"18px\" />\n Filter based on selected model\n </span>\n <Switch\n checked={showRelatedTools}\n onCheckedChange={handleCheckboxChange}\n disabled={\n filterAttachmentsForCarousel(attachments)[modelIndex]\n .resourceType !== IPostAttachmentTypes.MODEL\n }\n />\n </div>\n </CardHeader>\n <CardContent>\n <Table>\n <TableHeader>\n <TableRow>\n <TableHead>#</TableHead>\n <TableHead>Filename</TableHead>\n <TableHead>Size</TableHead>\n <TableHead>Type</TableHead>\n <TableHead className=\"text-right\">Action</TableHead>\n </TableRow>\n </TableHeader>\n <TableBody>\n {Array.isArray(filteredToolData) &&\n filteredToolData.map((tool, index) => (\n <TableRow key={tool._id}>\n <TableCell>{index + 1}</TableCell>\n <TableCell>\n {\n filterAttachmentsForCarousel(attachments).find(\n (attachment) => attachment._id === tool.modelId\n )?.fileName\n }\n </TableCell>\n <TableCell>\n {tool.toolUsed} ({tool.toolUnit})\n </TableCell>\n <TableCell>{tool.toolType}</TableCell>\n <TableCell>\n <Button\n variant=\"ghost\"\n size=\"sm\"\n onClick={() => {\n const currentModelIndex = filterAttachmentsForCarousel(\n attachments\n ).findIndex(\n (attachment) => attachment._id === tool.modelId\n );\n setModelIndex(currentModelIndex);\n }}\n >\n <Eye className=\"h-4 w-4\" />\n </Button>\n </TableCell>\n </TableRow>\n ))}\n </TableBody>\n </Table>\n </CardContent>\n </Card>\n );\n}\n\nexport default ToolsDataCard;\n","/* eslint-disable react/jsx-no-useless-fragment */\nimport { Ruler } from 'lucide-react';\nimport { Card, CardContent, CardHeader, CardTitle } from '@/components/ui/card';\nimport { Separator } from '@/components/ui/separator';\nimport { IPostDetailResponse } from '@/redux/post/post.d';\n\nfunction JobDetailsCard({ post }: { post: IPostDetailResponse }) {\n return post.toolSetter ||\n post.probeForZHeightCommand ||\n post.spindleSpeed ||\n post.jobSize ? (\n <Card>\n <CardHeader>\n <div className=\"flex gap-2 items-center\">\n <Ruler className=\"h-5 w-5\" />\n <CardTitle>Tool and Job Details</CardTitle>\n </div>\n </CardHeader>\n <CardContent>\n <dl className=\"grid gap-2 text-sm\">\n {post.toolSetter ? (\n <div className=\"grid grid-cols-2\">\n <dt className=\"font-medium text-muted-foreground\">\n Tool Setter:\n </dt>\n <dd>{post.toolSetter}</dd>\n </div>\n ) : (\n <></>\n )}\n {post.probeForZHeightCommand ? (\n <div className=\"grid grid-cols-2\">\n <dt className=\"font-medium text-muted-foreground\">\n Probe Command:\n </dt>\n <dd>{post.probeForZHeightCommand}</dd>\n </div>\n ) : (\n <></>\n )}\n {post.spindleSpeed ? (\n <div className=\"grid grid-cols-2\">\n <dt className=\"font-medium text-muted-foreground\">\n Spindle Speed:\n </dt>\n <dd>{post.spindleSpeed} RPM</dd>\n </div>\n ) : (\n <></>\n )}\n <Separator className=\"my-4\" />\n {post.jobSize?.height ? (\n <div className=\"grid grid-cols-2\">\n <dt className=\"font-medium text-muted-foreground\">Job Height:</dt>\n <dd>\n {post.jobSize.height} {post.units}\n </dd>\n </div>\n ) : (\n <></>\n )}\n {post.jobSize?.width ? (\n <div className=\"grid grid-cols-2\">\n <dt className=\"font-medium text-muted-foreground\">Job Width:</dt>\n <dd>\n {post.jobSize.width} {post.units}\n </dd>\n </div>\n ) : (\n <></>\n )}\n {post.jobSize?.thickness ? (\n <div className=\"grid grid-cols-2\">\n <dt className=\"font-medium text-muted-foreground\">\n Job Thickness:\n </dt>\n <dd>\n {post.jobSize.thickness} {post.units}\n </dd>\n </div>\n ) : (\n <></>\n )}\n </dl>\n </CardContent>\n </Card>\n ) : (\n <></>\n );\n}\n\nexport default JobDetailsCard;\n","/* eslint-disable react/jsx-no-useless-fragment */\nimport { Settings2 } from 'lucide-react';\nimport { Card, CardContent, CardHeader, CardTitle } from '@/components/ui/card';\nimport { Separator } from '@/components/ui/separator';\nimport { IPostDetailResponse } from '@/redux/post/post.d';\n\nfunction JobSettingsCard({ post }: { post: IPostDetailResponse }) {\n return post.zZeroPosition ||\n post.xyDatumPosition ||\n post.softwareUsed ||\n post.materialUsed ? (\n <Card>\n <CardHeader>\n <div className=\"flex gap-2 items-center\">\n <Settings2 className=\"h-5 w-5\" />\n <CardTitle>Job Settings</CardTitle>\n </div>\n </CardHeader>\n <CardContent>\n <dl className=\"grid gap-2 text-sm\">\n {post.zZeroPosition ? (\n <div className=\"grid grid-cols-2\">\n <dt className=\"font-medium text-muted-foreground\">\n Z Zero Position:\n </dt>\n <dd>{post.zZeroPosition}</dd>\n </div>\n ) : (\n <></>\n )}\n {post.xyDatumPosition ? (\n <div className=\"grid grid-cols-2\">\n <dt className=\"font-medium text-muted-foreground\">\n XY Datum Position:\n </dt>\n <dd>{post.xyDatumPosition}</dd>\n </div>\n ) : (\n <></>\n )}\n <Separator className=\"my-4\" />\n {post.softwareUsed ? (\n <div className=\"grid grid-cols-2\">\n <dt className=\"font-medium text-muted-foreground\">Software:</dt>\n <dd>{post.softwareUsed}</dd>\n </div>\n ) : (\n <></>\n )}\n {post.materialUsed ? (\n <div className=\"grid grid-cols-2\">\n <dt className=\"font-medium text-muted-foreground\">Material:</dt>\n <dd>{post.materialUsed}</dd>\n </div>\n ) : (\n <></>\n )}\n </dl>\n </CardContent>\n </Card>\n ) : (\n <></>\n );\n}\n\nexport default JobSettingsCard;\n","/* eslint-disable react/self-closing-comp */\nimport { useState } from 'react';\nimport { useParams } from 'react-router-dom';\nimport { Badge } from '@/components/ui/badge';\nimport { useGetPostByIdQuery } from '@/redux/post/post.api.slice';\nimport PostCommentForm from '@/redux/commet/PostCommentForm';\nimport PostCommentList from '@/redux/commet/PostCommentList';\nimport LikeButton from '@/redux/like/LikeButton';\nimport PostDetailCarousel from '@/components/Post/PostDetailCarousel';\nimport { getUserFullName } from '@/lib/utils';\nimport NotFound from '../NotFound';\nimport ProfilePicture from '@/components/ui/profile-picture';\nimport ShareButton from '@/components/Post/ShareButton';\nimport DownloadPostAttachementsModal from '@/redux/post/DownloadPostAttachementsModal';\nimport DescriptionWithLinks from '@/components/Post/DescriptionWithLinks';\nimport OnefinityOfficialIcon from '@/assets/onefinity_officials_badge.png';\nimport { Card, CardTitle } from '@/components/ui/card';\nimport OnefinityDetailsCard from './OnefinityDetailsCard';\nimport ToolsDataCard from './ToolsDataCard';\nimport JobDetailsCard from './JobDetailsCard';\nimport JobSettingsCard from './JobSettingsCard';\nimport { Separator } from '@/components/ui/separator';\nimport { filterAttachmentsForCarousel } from '@/redux/post/post.utils';\nimport PostStatusBadge from '@/components/Post/PostStatusBadge';\nimport { IPostVisibility } from '@/redux/post/post';\n\nfunction ModalDetail() {\n const { id: postId } = useParams();\n const { data: post, isLoading } = useGetPostByIdQuery(postId || '');\n const [modelIndex, setModelIndex] = useState<number>(0);\n\n if (isLoading) return <div>Loading...</div>;\n\n if (!post || !postId || !post.attachments || !post.attachments.length) {\n return <NotFound />;\n }\n\n return (\n <div className=\"overflow-y-auto scroll-snap-type-y-mandatory pb-24 py-[84px]\">\n {post?.visibility === 'private' && (\n <p className=\"w-full py-2 text-center text-sm text-muted-foreground font-secondary bg-[#FFEA99]\">\n This project will not be visible to others until it is approved by\n filefinity.\n </p>\n )}\n <div className=\"mx-auto rounded-none border-none shadow-none px-5 py-[2rem]\">\n <div className=\"flex flex-wrap gap-10 lg:gap-0 lg:flex-nowrap\">\n <div className=\"flex flex-col lg:w-[50%] lg:border-r-[1px] border-[#E0E0E0] items-center justify-between px-0 lg:px-8 h-[670px] w-full border-r-0\">\n <div className=\"flex justify-between w-full items-center flex-wrap items-center\">\n <div>\n <h1 className=\"font-primary font-bold text-2xl capitalize\">\n {post?.title}\n </h1>\n <div className=\"flex items-center gap-2 py-3\">\n <ProfilePicture\n className=\"w-[30px] h-[30px]\"\n src={post?.user?.profilePicture}\n alt={post?.user?.firstname}\n />\n <div className=\"flex gap-2 items-center\">\n <span className=\"text-sm text-[#666666]\">\n {getUserFullName(post?.user)}\n </span>\n {post.user.isOnefinityOfficial ? (\n <img\n src={OnefinityOfficialIcon}\n className=\"h-6 w-6\"\n alt=\"onefinity official\"\n />\n ) : (\n // eslint-disable-next-line react/jsx-no-useless-fragment\n <></>\n )}\n </div>\n </div>\n </div>\n <PostStatusBadge\n visibility={post.visibility as IPostVisibility}\n />\n </div>\n <PostDetailCarousel\n attachments={filterAttachmentsForCarousel(post?.attachments)}\n modelIndex={modelIndex}\n setModelIndex={setModelIndex}\n />\n </div>\n <div className=\"h-[650px] overflow-y-auto lg:w-[50%] w-full custom-scrollbar relative\">\n <div className=\"space-y-1 flex justify-between w-full items-center px-0 lg:px-[35px] sticky top-0 bg-white z-10 pb-5 shadow-sm mb-3\">\n <h1 className=\"text-2xl font-semibold tracking-tight\">\n Project Details\n </h1>\n <div className=\"flex gap-2\">\n <DownloadPostAttachementsModal\n attachments={post?.attachments}\n postTitle={post.title}\n />\n <ShareButton\n shareUrl={`${window.location.origin}/model/${postId}`}\n />\n <LikeButton\n liked={post?.hasLikedByUser}\n postId={postId}\n likes={post?.likes}\n />\n </div>\n </div>\n <div className=\"px-0 lg:px-[35px]\">\n <DescriptionWithLinks description={post?.description} />\n <Separator className=\"my-4\" />\n <div>\n <ToolsDataCard\n post={post}\n modelIndex={modelIndex}\n setModelIndex={setModelIndex}\n />\n <div className=\"grid gap-6 sm:grid-cols-2\">\n <JobDetailsCard post={post} />\n <JobSettingsCard post={post} />\n </div>\n <OnefinityDetailsCard post={post} />\n </div>\n <Card className=\"my-5 p-6\">\n <CardTitle># Hashtags</CardTitle>\n <div className=\"flex flex-wrap gap-5 mt-5\">\n {post.tags.map((tag) => (\n <Badge\n key={tag._id}\n variant=\"secondary\"\n className=\"px-3 py-1 rounded-md font-medium capitalize\"\n >\n #{tag.name}\n </Badge>\n ))}\n </div>\n </Card>\n </div>\n </div>\n </div>\n </div>\n <div className=\"bg-[#F7F9FA] px-8 lg:px-20 py-8 scroll-snap-align-start\">\n <h3 className=\"font-secondary text-xl\">Comments ({post?.comments})</h3>\n </div>\n <div className=\"mt-8 py-[2rem] mx-auto px-4 lg:px-14 flex justify-between gap-[40px] lg:flex-nowrap flex-wrap\">\n <PostCommentList postId={postId} />\n <PostCommentForm postId={postId} />\n </div>\n </div>\n );\n}\n\nexport default ModalDetail;\n","import { z } from 'zod';\n\nconst MAX_FILE_SIZE = 5 * 1024 * 1024;\nconst ACCEPTED_IMAGE_TYPES = [\n 'image/jpeg',\n 'image/jpg',\n 'image/png',\n 'image/webp',\n];\n\nconst isValidFileType = (file: File) =>\n ACCEPTED_IMAGE_TYPES.includes(file.type);\n\nconst profilePictureFileSchema = z\n .custom<File>((value) => value instanceof File)\n .refine(\n (file) => file.size <= MAX_FILE_SIZE,\n `File size should be less than 5MB.`\n )\n .refine(\n (file) => isValidFileType(file),\n 'Only .jpg, .jpeg, .png and .webp formats are supported.'\n );\n\nconst profilePictureUrlSchema = z\n .string()\n .url()\n .refine(async (url) => {\n try {\n const response = await fetch(url, { method: 'HEAD' });\n const contentType = response.headers.get('content-type');\n return contentType ? ACCEPTED_IMAGE_TYPES.includes(contentType) : false;\n } catch {\n return false;\n }\n }, 'Invalid image URL or unsupported image type.');\n\nexport const loginSchema = z.object({\n email: z\n .string({\n required_error: 'Email is required',\n })\n .email({\n message: 'Please enter a valid email address',\n }),\n password: z.string().min(8, {\n message: 'Password must be at least 8 characters long',\n }),\n});\n\nexport const usernameSchema = z\n .string({\n required_error: 'Username is required',\n })\n .trim()\n .min(4, {\n message: 'Username must be at least 4 characters long',\n })\n .max(15, {\n message: 'Username must not exceed 15 characters',\n })\n .regex(/^[a-zA-Z0-9_]+$/, {\n message: 'Username can only contain letters, numbers, and underscores',\n })\n .regex(/^[a-zA-Z]/, {\n message: 'Username must start with a letter',\n })\n .regex(/^(?!.*_{2,}).*$/, {\n message: 'Username cannot contain consecutive underscores',\n });\n\nexport const signupBasicDetailsWithEmailSchema = z\n .object({\n profilePicture: z\n .union([profilePictureFileSchema, profilePictureUrlSchema])\n .optional(),\n username: usernameSchema,\n firstname: z\n .string({\n required_error: 'Firstname is required',\n })\n .trim()\n .min(1, {\n message: 'Firstname is required',\n }),\n lastname: z\n .string({\n required_error: 'Lastname is required',\n })\n .trim()\n .min(1, {\n message: 'Lastname is required',\n }),\n email: z\n .string({\n required_error: 'Email is required',\n })\n .trim()\n .email({\n message: 'Please enter a valid email address',\n }),\n password: z\n .string({\n required_error: 'Password is required',\n })\n .trim()\n .min(8, {\n message: 'Password must be at least 8 characters long',\n }),\n confirmPassword: z\n .string({\n required_error: 'Confirm password is required',\n })\n .trim()\n .min(8, {\n message: 'Password must be at least 8 characters long',\n }),\n })\n .refine((data) => data.password === data.confirmPassword, {\n message: 'Passwords must match',\n path: ['confirmPassword'],\n });\n\nexport const signupBasicDetailsWithGoogleSchema = z.object({\n profilePicture: z\n .union([profilePictureFileSchema, profilePictureUrlSchema])\n .optional(),\n username: usernameSchema,\n firstname: z\n .string({\n required_error: 'Firstname is required',\n })\n .trim()\n .min(1, {\n message: 'Firstname is required',\n }),\n lastname: z\n .string({\n required_error: 'Lastname is required',\n })\n .trim()\n .min(1, {\n message: 'Lastname is required',\n }),\n email: z\n .string({\n required_error: 'Email is required',\n })\n .trim()\n .email({\n message: 'Please enter a valid email address',\n }),\n});\n\nexport const signupOtherDetailsSchema = z\n .object({\n locatedAt: z.string().min(1, {\n message: 'Located at is required',\n }),\n cncBrand: z\n .string({\n required_error: 'CNC Brand is required',\n })\n .min(1, {\n message: 'CNC Brand is required',\n }),\n cncModel: z.string().optional(),\n })\n .superRefine((data, ctx) => {\n if (data.cncBrand === 'Onefinity' && !data.cncModel) {\n ctx.addIssue({\n code: z.ZodIssueCode.custom,\n message: 'CNC Model is required for Onefinity brand',\n path: ['cncModel'],\n });\n }\n });\n\nexport const forgetPasswordSchema = z.object({\n email: z.string().email(),\n});\n\nexport const resetPasswordSchema = z\n .object({\n password: z\n .string({\n required_error: 'Password is required',\n })\n .trim()\n .min(8, {\n message: 'Password must be at least 8 characters long',\n }),\n confirmPassword: z\n .string({\n required_error: 'Confirm password is required',\n })\n .trim()\n .min(8, {\n message: 'Password must be at least 8 characters long',\n }),\n })\n .refine((data) => data.password === data.confirmPassword, {\n message: 'Passwords must match',\n path: ['confirmPassword'],\n });\n\nexport const changePasswordSchema = z\n .object({\n currentPassword: z\n .string({\n required_error: 'Password is required',\n })\n .trim()\n .min(8, {\n message: 'Password must be at least 8 characters long',\n }),\n newPassword: z\n .string({\n required_error: 'Password is required',\n })\n .trim()\n .min(8, {\n message: 'Password must be at least 8 characters long',\n }),\n confirmPassword: z\n .string({\n required_error: 'Confirm password is required',\n })\n .trim()\n .min(8, {\n message: 'Password must be at least 8 characters long',\n }),\n })\n .refine((data) => data.newPassword === data.confirmPassword, {\n message: 'Passwords must match',\n path: ['confirmPassword'],\n });\n","import { useForm } from 'react-hook-form';\nimport { zodResolver } from '@hookform/resolvers/zod';\nimport { z } from 'zod';\nimport {\n resetPasswordSchema,\n forgetPasswordSchema,\n loginSchema,\n signupBasicDetailsWithEmailSchema,\n signupBasicDetailsWithGoogleSchema,\n signupOtherDetailsSchema,\n changePasswordSchema,\n} from './auth.schema';\n\nexport const useLoginForm = () => {\n return useForm<z.infer<typeof loginSchema>>({\n resolver: zodResolver(loginSchema),\n defaultValues: {\n email: '',\n password: '',\n },\n });\n};\n\nexport const useSignupBasicDetailsForm = (socialLogin: boolean) => {\n return useForm<\n | z.infer<typeof signupBasicDetailsWithGoogleSchema>\n | z.infer<typeof signupBasicDetailsWithEmailSchema>\n >({\n resolver: socialLogin\n ? zodResolver(signupBasicDetailsWithGoogleSchema)\n : zodResolver(signupBasicDetailsWithEmailSchema),\n defaultValues: socialLogin\n ? {\n profilePicture: '',\n username: '',\n firstname: '',\n lastname: '',\n email: '',\n }\n : {\n profilePicture: '',\n username: '',\n firstname: '',\n lastname: '',\n email: '',\n password: '',\n confirmPassword: '',\n },\n });\n};\n\nexport const useSignupOtherDetailsForm = () => {\n return useForm<z.infer<typeof signupOtherDetailsSchema>>({\n resolver: zodResolver(signupOtherDetailsSchema),\n defaultValues: {\n cncBrand: '',\n cncModel: '',\n locatedAt: '',\n },\n });\n};\n\nexport const useForgetPasswordForm = () => {\n return useForm<z.infer<typeof forgetPasswordSchema>>({\n resolver: zodResolver(forgetPasswordSchema),\n defaultValues: {\n email: '',\n },\n });\n};\n\nexport const useResetPasswordForm = () => {\n return useForm<z.infer<typeof resetPasswordSchema>>({\n resolver: zodResolver(resetPasswordSchema),\n defaultValues: {\n password: '',\n confirmPassword: '',\n },\n });\n};\n\nexport const useChangePasswordForm = () => {\n return useForm<z.infer<typeof changePasswordSchema>>({\n resolver: zodResolver(changePasswordSchema),\n defaultValues: {\n currentPassword: '',\n newPassword: '',\n confirmPassword: '',\n },\n });\n};\n","import { z } from 'zod';\nimport { objectToFormData } from '@/lib/utils';\nimport apiSlice from '../api/api.slice';\nimport {\n AuthResponse,\n IUser,\n LoginRequest,\n PasswordChangeRequest,\n IUserSignupData,\n ICompleteUserSignup,\n} from './auth';\nimport { forgetPasswordSchema } from './auth.schema';\n\nexport const authApiSlice = apiSlice.injectEndpoints({\n endpoints: (builder) => ({\n login: builder.mutation<AuthResponse, LoginRequest>({\n query: ({ email, password }) => ({\n url: '/api/v1/auth/login',\n method: 'POST',\n body: { email, password },\n }),\n transformResponse: (response: AuthResponse) => response,\n }),\n signup: builder.mutation<AuthResponse, IUserSignupData>({\n query: (body) => ({\n url: '/api/v1/auth/register',\n method: 'POST',\n body: objectToFormData(body),\n }),\n transformResponse: (response: AuthResponse) => response,\n }),\n getUser: builder.query<IUser, void>({\n query: () => ({\n url: '/api/v1/auth/me',\n method: 'GET',\n }),\n transformResponse: (response: { user: IUser }) => {\n return response.user;\n },\n }),\n checkUsernameAvailability: builder.query<boolean, string>({\n query: (username) => ({\n url: `/api/v1/auth/usernameAvailability`,\n method: 'GET',\n params: {\n username,\n },\n }),\n transformResponse: (response: { available: boolean }) =>\n response.available,\n }),\n updateUserData: builder.mutation<AuthResponse, Partial<IUser>>({\n query: (body) => ({\n url: '/api/v1/auth/updateUser',\n method: 'PATCH',\n body,\n }),\n }),\n updateUserPassword: builder.mutation<AuthResponse, PasswordChangeRequest>({\n query: (body) => ({\n url: '/api/v1/auth/updatePassword',\n method: 'PATCH',\n body,\n }),\n }),\n logout: builder.mutation<AuthResponse, void>({\n query: () => ({\n url: '/api/v1/auth/logout',\n method: 'GET',\n }),\n }),\n getGoogleSignInLink: builder.query<{ url: string }, void>({\n query: () => ({\n url: '/api/v1/auth/generateGoogleSignInLink',\n method: 'GET',\n }),\n transformResponse: (response: { url: string }) => response,\n }),\n getVerificationCode: builder.query<string, void>({\n query: () => ({\n url: '/api/v1/auth/getVerificationOtp',\n method: 'GET',\n }),\n transformResponse: (response: string) => response,\n }),\n validateVerificationCode: builder.mutation<AuthResponse, string>({\n query: (otp) => ({\n url: '/api/v1/auth/validateOtp',\n method: 'POST',\n body: {\n otp,\n },\n }),\n transformResponse: (response: AuthResponse) => response,\n }),\n completeUserSignup: builder.mutation<\n {\n status: string;\n user: IUser;\n },\n ICompleteUserSignup\n >({\n query: (userData) => ({\n url: '/api/v1/auth/completeUserSignup',\n method: 'POST',\n body: objectToFormData(userData),\n }),\n }),\n sendForgetPasswordEmail: builder.mutation<\n {\n status: string;\n message: string;\n },\n z.infer<typeof forgetPasswordSchema>\n >({\n query: (body) => ({\n url: '/api/v1/auth/sendPasswordResetEmail',\n method: 'POST',\n body,\n }),\n }),\n resetPassword: builder.mutation<\n {\n status: string;\n message: string;\n },\n {\n password: string;\n token: string;\n }\n >({\n query: (body) => ({\n url: '/api/v1/auth/resetPassword',\n method: 'POST',\n body,\n }),\n }),\n changePassword: builder.mutation<\n {\n status: string;\n message: string;\n },\n {\n newPassword: string;\n currentPassword: string;\n }\n >({\n query: (body) => ({\n url: '/api/v1/auth/updateUserPassword',\n method: 'PATCH',\n body,\n }),\n }),\n }),\n});\n\nexport const {\n useGetUserQuery,\n useLoginMutation,\n useLogoutMutation,\n useSignupMutation,\n useLazyGetUserQuery,\n useResetPasswordMutation,\n useUpdateUserDataMutation,\n useChangePasswordMutation,\n useUpdateUserPasswordMutation,\n useCompleteUserSignupMutation,\n useLazyGetVerificationCodeQuery,\n useLazyGetGoogleSignInLinkQuery,\n useSendForgetPasswordEmailMutation,\n useValidateVerificationCodeMutation,\n useLazyCheckUsernameAvailabilityQuery,\n} = authApiSlice;\n","function Google() {\n return (\n <svg\n width=\"16\"\n height=\"16\"\n viewBox=\"0 0 16 16\"\n fill=\"none\"\n xmlns=\"http://www.w3.org/2000/svg\"\n >\n <path\n fillRule=\"evenodd\"\n clipRule=\"evenodd\"\n d=\"M15.68 8.18183C15.68 7.61456 15.6291 7.06911 15.5345 6.54547H8V9.64002H12.3055C12.12 10.64 11.5564 11.4873 10.7091 12.0546V14.0618H13.2945C14.8073 12.6691 15.68 10.6182 15.68 8.18183Z\"\n fill=\"#4285F4\"\n />\n <path\n fillRule=\"evenodd\"\n clipRule=\"evenodd\"\n d=\"M7.99992 16C10.1599 16 11.9708 15.2837 13.2945 14.0618L10.709 12.0546C9.99265 12.5346 9.07629 12.8182 7.99992 12.8182C5.91629 12.8182 4.15265 11.4109 3.52356 9.52002H0.85083V11.5927C2.16719 14.2073 4.87265 16 7.99992 16Z\"\n fill=\"#34A853\"\n />\n <path\n fillRule=\"evenodd\"\n clipRule=\"evenodd\"\n d=\"M3.52364 9.52001C3.36364 9.04001 3.27273 8.52729 3.27273 8.00001C3.27273 7.47274 3.36364 6.96001 3.52364 6.48001V4.40729H0.850909C0.309091 5.48729 0 6.70911 0 8.00001C0 9.29092 0.309091 10.5127 0.850909 11.5927L3.52364 9.52001Z\"\n fill=\"#FBBC05\"\n />\n <path\n fillRule=\"evenodd\"\n clipRule=\"evenodd\"\n d=\"M7.99992 3.18182C9.17447 3.18182 10.229 3.58545 11.0581 4.37818L13.3526 2.08364C11.9672 0.792727 10.1563 0 7.99992 0C4.87265 0 2.16719 1.79273 0.85083 4.40727L3.52356 6.48C4.15265 4.58909 5.91629 3.18182 7.99992 3.18182Z\"\n fill=\"#EA4335\"\n />\n </svg>\n );\n}\n\nexport default Google;\n","const Divider = ({ text }: { text: string }) => {\n return (\n <div className=\"flex items-center\">\n <hr className=\"flex-grow border-t border-gray-300\" />\n {text && <span className=\"px-3 text-gray-500 text-sm\">{text}</span>}\n <hr className=\"flex-grow border-t border-gray-300\" />\n </div>\n );\n};\n\nexport default Divider;\n","import { DialogDescription, DialogTitle } from '@radix-ui/react-dialog';\nimport { useDispatch } from 'react-redux';\nimport { z } from 'zod';\nimport { toast } from 'sonner';\nimport { useLoginForm } from './useAuthForm';\nimport { DialogFooter, DialogHeader } from '@/components/ui/dialog';\nimport { Button } from '@/components/ui/button';\nimport {\n Form,\n FormControl,\n FormField,\n FormItem,\n FormLabel,\n FormMessage,\n} from '@/components/ui/form';\nimport { Input } from '@/components/ui/input';\nimport {\n useLazyGetGoogleSignInLinkQuery,\n useGetUserQuery,\n useLoginMutation,\n} from './auth.api.slice';\nimport { loginSchema } from './auth.schema';\nimport Google from '@/components/Icons/Google';\nimport {\n setShowForgetPasswordDialog,\n setShowLoginDialog,\n} from '../global/global.slice';\nimport Divider from '@/components/ui/divider';\n\nfunction LoginForm() {\n const dispatch = useDispatch();\n const [login, { isLoading: isLoginLoading }] = useLoginMutation();\n const [getGoogleSignInLink] = useLazyGetGoogleSignInLinkQuery();\n const { refetch: refetchUser } = useGetUserQuery();\n const loginForm = useLoginForm();\n\n async function handleLoginSubmit(values: z.infer<typeof loginSchema>) {\n try {\n const data = await login(values).unwrap();\n if (data.status !== 'success') {\n toast.error('Login Failed', {\n description: (data as any)?.errorMessage || 'Something went wrong',\n });\n }\n await refetchUser();\n dispatch(setShowLoginDialog(false));\n toast.success('Login successful');\n } catch (error: any) {\n toast.error('Login Failed', {\n description: error?.data?.errorMessage || 'Something went wrong',\n });\n }\n }\n\n async function handleGoogleLogin() {\n const data = await getGoogleSignInLink().unwrap();\n window.location.href = data.url;\n }\n\n const handleOpenForgetPasswordModal = () => {\n dispatch(setShowLoginDialog(false));\n dispatch(setShowForgetPasswordDialog(true));\n };\n\n return (\n <Form {...loginForm}>\n <form onSubmit={loginForm.handleSubmit(handleLoginSubmit)}>\n <DialogHeader>\n <DialogTitle className=\"font-primary text-lg font-bold text-center\">\n Log in\n </DialogTitle>\n <DialogDescription className=\"text-center font-secondary text-[16px] text-[#666666]\">\n Already having an account? <br />\n Continue now!\n </DialogDescription>\n </DialogHeader>\n <div className=\"flex flex-col py-2 gap-4\">\n <div className=\"flex flex-col gap-2\">\n <FormField\n control={loginForm.control}\n name=\"email\"\n render={({ field }) => (\n <FormItem>\n <FormLabel>Email</FormLabel>\n <FormControl>\n <Input\n type=\"email\"\n placeholder=\"Enter your email address\"\n {...field}\n />\n </FormControl>\n <FormMessage />\n </FormItem>\n )}\n />\n </div>\n <div className=\"flex flex-col gap-2\">\n <FormField\n control={loginForm.control}\n name=\"password\"\n render={({ field }) => (\n <FormItem>\n <FormLabel>Password</FormLabel>\n <FormControl>\n <Input\n type=\"password\"\n placeholder=\"Enter your password\"\n {...field}\n />\n </FormControl>\n <FormMessage />\n </FormItem>\n )}\n />\n </div>\n </div>\n <DialogFooter className=\"mt-2\">\n <div className=\"flex flex-col gap-2 w-full\">\n <Button\n type=\"submit\"\n className=\"w-full bg-black font-bold\"\n disabled={isLoginLoading}\n >\n Continue\n </Button>\n </div>\n </DialogFooter>\n </form>\n <Divider text=\"Or\" />\n <div className=\"flex flex-col gap-2\">\n <Button\n onClick={handleGoogleLogin}\n className=\"w-full\"\n variant=\"outline\"\n type=\"button\"\n disabled={isLoginLoading}\n >\n <span className=\"flex items-center gap-2\">\n <Google />\n <span>Continue with Google</span>\n </span>\n </Button>\n <Button\n className=\"w-full\"\n variant=\"link\"\n type=\"button\"\n onClick={handleOpenForgetPasswordModal}\n >\n Forget Password ?\n </Button>\n </div>\n </Form>\n );\n}\n\nexport default LoginForm;\n","import { useDispatch, useSelector } from 'react-redux';\nimport LoginForm from '@/redux/auth/LoginForm';\nimport { Button } from '@/components/ui/button';\nimport { Dialog, DialogContent, DialogTrigger } from '@/components/ui/dialog';\nimport { setShowLoginDialog } from '@/redux/global/global.slice';\nimport { IGlobalState } from '@/redux/global/global';\n\nfunction LoginDialog({\n variant,\n}: {\n variant:\n | 'default'\n | 'destructive'\n | 'outline'\n | 'secondary'\n | 'ghost'\n | 'link'\n | 'gradient'\n | 'toolbarActive';\n}) {\n const dispatch = useDispatch();\n\n const { showLoginDialog: loginDialog } = useSelector(\n (state: { global: IGlobalState }) => state.global\n );\n\n return (\n <Dialog\n open={loginDialog}\n onOpenChange={(open) => dispatch(setShowLoginDialog(open))}\n >\n <DialogTrigger asChild>\n <Button variant={variant} className=\"text-white\">\n Login\n </Button>\n </DialogTrigger>\n <DialogContent className=\"sm:max-w-[425px]\">\n <LoginForm />\n </DialogContent>\n </Dialog>\n );\n}\n\nexport default LoginDialog;\n","export default \"__VITE_ASSET__BXF5hQ_8__\"","import * as React from 'react';\nimport { OTPInput, OTPInputContext } from 'input-otp';\nimport { Dot } from 'lucide-react';\n\nimport { cn } from '@/lib/utils';\n\nconst InputOTP = React.forwardRef<\n React.ElementRef<typeof OTPInput>,\n React.ComponentPropsWithoutRef<typeof OTPInput>\n>(({ className, containerClassName, ...props }, ref) => (\n <OTPInput\n ref={ref}\n containerClassName={cn(\n 'flex items-center gap-2 has-[:disabled]:opacity-50',\n containerClassName\n )}\n className={cn('disabled:cursor-not-allowed', className)}\n {...props}\n />\n));\nInputOTP.displayName = 'InputOTP';\n\nconst InputOTPGroup = React.forwardRef<\n React.ElementRef<'div'>,\n React.ComponentPropsWithoutRef<'div'>\n>(({ className, ...props }, ref) => (\n <div ref={ref} className={cn('flex items-center', className)} {...props} />\n));\nInputOTPGroup.displayName = 'InputOTPGroup';\n\nconst InputOTPSlot = React.forwardRef<\n React.ElementRef<'div'>,\n React.ComponentPropsWithoutRef<'div'> & { index: number }\n>(({ index, className, ...props }, ref) => {\n const inputOTPContext = React.useContext(OTPInputContext);\n const { char, hasFakeCaret, isActive } = inputOTPContext.slots[index];\n\n return (\n <div\n ref={ref}\n className={cn(\n 'relative flex h-10 w-10 items-center justify-center border-y border-r border-input text-sm transition-all first:rounded-l-md first:border-l last:rounded-r-md',\n isActive && 'z-10 ring-2 ring-ring ring-offset-background',\n className\n )}\n {...props}\n >\n {char}\n {hasFakeCaret && (\n <div className=\"pointer-events-none absolute inset-0 flex items-center justify-center\">\n <div className=\"h-4 w-px animate-caret-blink bg-foreground duration-1000\" />\n </div>\n )}\n </div>\n );\n});\nInputOTPSlot.displayName = 'InputOTPSlot';\n\nconst InputOTPSeparator = React.forwardRef<\n React.ElementRef<'div'>,\n React.ComponentPropsWithoutRef<'div'>\n>(({ ...props }, ref) => (\n <div ref={ref} role=\"separator\" {...props}>\n <Dot />\n </div>\n));\nInputOTPSeparator.displayName = 'InputOTPSeparator';\n\nexport { InputOTP, InputOTPGroup, InputOTPSlot, InputOTPSeparator };\n","/* eslint-disable radix */\nimport { useCallback, useEffect, useState } from 'react';\nimport { zodResolver } from '@hookform/resolvers/zod';\nimport { useForm } from 'react-hook-form';\nimport { z } from 'zod';\nimport { toast } from 'sonner';\n// eslint-disable-next-line import/no-extraneous-dependencies\nimport { REGEXP_ONLY_DIGITS } from 'input-otp';\nimport { Button } from '@/components/ui/button';\nimport {\n Dialog,\n DialogContent,\n DialogFooter,\n DialogHeader,\n DialogTitle,\n DialogTrigger,\n DialogClose,\n} from '@/components/ui/dialog';\nimport {\n InputOTP,\n InputOTPGroup,\n InputOTPSlot,\n} from '@/components/ui/input-otp';\nimport {\n Form,\n FormControl,\n FormDescription,\n FormField,\n FormItem,\n FormLabel,\n FormMessage,\n} from '@/components/ui/form';\nimport {\n useGetUserQuery,\n useLazyGetVerificationCodeQuery,\n useValidateVerificationCodeMutation,\n} from './auth.api.slice';\n\nconst FormSchema = z.object({\n code: z.string().min(6, {\n message: 'Your verification code must be 6 characters.',\n }),\n});\n\nconst INITIAL_RESEND_DELAY = 30;\nconst MAX_RESEND_DELAY = 300;\nconst RAPID_RESEND_THRESHOLD = 30;\nconst RESET_TIME_THRESHOLD = 900;\n\nfunction VerifyAccountModal() {\n const [resendTimer, setResendTimer] = useState(0);\n const [resendCount, setResendCount] = useState(0);\n const [lastResendTime, setLastResendTime] = useState(0);\n const [open, setOpen] = useState(false);\n\n const [getVerificationCode, { isLoading: isGetVerificationCodeLoading }] =\n useLazyGetVerificationCodeQuery();\n const [validateVerificationCode, { isLoading: isValidateLoading }] =\n useValidateVerificationCodeMutation();\n const form = useForm<z.infer<typeof FormSchema>>({\n resolver: zodResolver(FormSchema),\n defaultValues: {\n code: '',\n },\n });\n const { refetch: refetchUser } = useGetUserQuery();\n\n const calculateResendDelay = useCallback(\n (count: number) => {\n const now = Date.now();\n const timeSinceLastResend = (now - lastResendTime) / 1000;\n\n let delay = INITIAL_RESEND_DELAY * 2 ** count;\n\n if (timeSinceLastResend < RAPID_RESEND_THRESHOLD) {\n delay *= 2;\n }\n\n return Math.min(delay, MAX_RESEND_DELAY);\n },\n [lastResendTime]\n );\n\n useEffect(() => {\n const lastSentTime = localStorage.getItem('lastOtpSentTime');\n const storedResendCount = localStorage.getItem('otpResendCount');\n\n if (lastSentTime) {\n const timeSinceLastResend = Math.floor(\n (Date.now() - parseInt(lastSentTime)) / 1000\n );\n\n if (timeSinceLastResend > RESET_TIME_THRESHOLD) {\n setResendCount(0);\n setResendTimer(0);\n setLastResendTime(0);\n localStorage.removeItem('lastOtpSentTime');\n localStorage.removeItem('otpResendCount');\n } else {\n const delay = calculateResendDelay(\n storedResendCount ? parseInt(storedResendCount) : 0\n );\n setResendTimer(Math.max(delay - timeSinceLastResend, 0));\n }\n }\n\n if (storedResendCount) {\n setResendCount(parseInt(storedResendCount));\n }\n }, [calculateResendDelay]);\n\n useEffect(() => {\n let timer: any;\n if (resendTimer > 0) {\n timer = setTimeout(() => setResendTimer(resendTimer - 1), 1000);\n }\n return () => clearTimeout(timer);\n }, [resendTimer]);\n\n const handleResend = async () => {\n await getVerificationCode().unwrap();\n toast.success('Verifiction code re-sent successfully');\n const now = Date.now();\n const timeSinceLastResend = (now - lastResendTime) / 1000;\n const newResendCount = resendCount + 1;\n\n if (timeSinceLastResend < RAPID_RESEND_THRESHOLD) {\n return;\n }\n\n setResendCount(newResendCount);\n setLastResendTime(now);\n\n const delay = calculateResendDelay(newResendCount);\n setResendTimer(delay);\n\n localStorage.setItem('lastOtpSentTime', now.toString());\n localStorage.setItem('otpResendCount', newResendCount.toString());\n };\n\n async function handleValidateOtpSubmit(values: z.infer<typeof FormSchema>) {\n try {\n const data = await validateVerificationCode(values.code).unwrap();\n if (data.status !== 'success') {\n toast.error('OTP validation failed', {\n description: (data as any)?.errorMessage || 'Something went wrong',\n });\n return;\n }\n setResendCount(0);\n setResendTimer(0);\n localStorage.removeItem('lastOtpSentTime');\n localStorage.removeItem('otpResendCount');\n toast.success('OTP validated successfully');\n await refetchUser();\n setOpen(!open);\n } catch (error: any) {\n toast.error('OTP validation failed', {\n description: error?.data?.errorMessage || 'Something went wrong',\n });\n }\n }\n return (\n <Dialog open={open} onOpenChange={setOpen}>\n <DialogTrigger asChild>\n <Button variant=\"link\" size=\"sm\" className=\"px-0\">\n Enter OTP here\n </Button>\n </DialogTrigger>\n <DialogContent className=\"sm:max-w-md\">\n <DialogHeader>\n <DialogTitle className=\"text-[20px] sm:text-2xl font-primary text-left\">\n Filefinity Signup\n </DialogTitle>\n </DialogHeader>\n <Form {...form}>\n <form\n className=\"flex flex-col gap-4 items-center justify-center\"\n onSubmit={form.handleSubmit(handleValidateOtpSubmit)}\n >\n <FormField\n control={form.control}\n name=\"code\"\n render={({ field }) => (\n <FormItem>\n <div className=\"flex justify-center flex-col items-center gap-4\">\n <FormLabel>Enter your OTP Code</FormLabel>\n <FormControl>\n <InputOTP\n maxLength={6}\n {...field}\n pattern={REGEXP_ONLY_DIGITS}\n >\n <InputOTPGroup>\n <InputOTPSlot index={0} />\n <InputOTPSlot index={1} />\n <InputOTPSlot index={2} />\n <InputOTPSlot index={3} />\n <InputOTPSlot index={4} />\n <InputOTPSlot index={5} />\n </InputOTPGroup>\n </InputOTP>\n </FormControl>\n </div>\n <FormDescription className=\"text-center\">\n You should receive an email with your one-time password\n (OTP) for your signup shortly. If you don't receive it\n within 5 minutes, please check your spam folder.\n </FormDescription>\n <FormMessage />\n </FormItem>\n )}\n />\n {/* Resend will not be available till the beta is complete */}\n <div className=\"text-center w-full\">\n {resendTimer > 0 ? (\n <p className=\"text-sm text-muted-foreground\">\n Resend available in {resendTimer} seconds\n </p>\n ) : (\n <Button\n type=\"button\"\n variant=\"link\"\n className=\"text-sm p-0 h-auto\"\n disabled={isGetVerificationCodeLoading}\n onClick={() => handleResend()}\n >\n Click here to resend\n </Button>\n )}\n </div>\n <DialogFooter className=\"w-full gap-4\">\n <Button type=\"submit\" disabled={isValidateLoading}>\n Submit\n </Button>\n <DialogClose asChild>\n <Button type=\"button\" variant=\"outline\">\n Close\n </Button>\n </DialogClose>\n </DialogFooter>\n </form>\n </Form>\n </DialogContent>\n </Dialog>\n );\n}\n\nexport default VerifyAccountModal;\n","import * as React from 'react';\nimport * as SheetPrimitive from '@radix-ui/react-dialog';\nimport { cva, type VariantProps } from 'class-variance-authority';\nimport { X } from 'lucide-react';\n\nimport { cn } from '@/lib/utils';\n\nconst Sheet = SheetPrimitive.Root;\n\nconst SheetTrigger = SheetPrimitive.Trigger;\n\nconst SheetClose = SheetPrimitive.Close;\n\nconst SheetPortal = SheetPrimitive.Portal;\n\nconst SheetOverlay = React.forwardRef<\n React.ElementRef<typeof SheetPrimitive.Overlay>,\n React.ComponentPropsWithoutRef<typeof SheetPrimitive.Overlay>\n>(({ className, ...props }, ref) => (\n <SheetPrimitive.Overlay\n className={cn(\n 'fixed inset-0 z-50 bg-black/80 data-[state=open]:animate-in data-[state=closed]:animate-out data-[state=closed]:fade-out-0 data-[state=open]:fade-in-0',\n className\n )}\n {...props}\n ref={ref}\n />\n));\nSheetOverlay.displayName = SheetPrimitive.Overlay.displayName;\n\nconst sheetVariants = cva(\n 'fixed z-50 gap-4 bg-background p-6 shadow-lg transition ease-in-out data-[state=closed]:duration-300 data-[state=open]:duration-500 data-[state=open]:animate-in data-[state=closed]:animate-out',\n {\n variants: {\n side: {\n top: 'inset-x-0 top-0 border-b data-[state=closed]:slide-out-to-top data-[state=open]:slide-in-from-top',\n bottom:\n 'inset-x-0 bottom-0 border-t data-[state=closed]:slide-out-to-bottom data-[state=open]:slide-in-from-bottom',\n left: 'inset-y-0 left-0 h-full w-3/4 border-r data-[state=closed]:slide-out-to-left data-[state=open]:slide-in-from-left sm:max-w-sm',\n right:\n 'inset-y-0 right-0 h-full w-3/4 border-l data-[state=closed]:slide-out-to-right data-[state=open]:slide-in-from-right sm:max-w-sm',\n },\n },\n defaultVariants: {\n side: 'right',\n },\n }\n);\n\ninterface SheetContentProps\n extends React.ComponentPropsWithoutRef<typeof SheetPrimitive.Content>,\n VariantProps<typeof sheetVariants> {}\n\nconst SheetContent = React.forwardRef<\n React.ElementRef<typeof SheetPrimitive.Content>,\n SheetContentProps\n>(({ side = 'right', className, children, ...props }, ref) => (\n <SheetPortal>\n <SheetOverlay />\n <SheetPrimitive.Content\n ref={ref}\n className={cn(sheetVariants({ side }), className)}\n {...props}\n >\n <SheetPrimitive.Close className=\"absolute right-4 top-4 rounded-sm opacity-70 ring-offset-background transition-opacity hover:opacity-100 focus:outline-none focus:ring-2 focus:ring-ring focus:ring-offset-2 disabled:pointer-events-none data-[state=open]:bg-secondary\">\n <X className=\"h-4 w-4\" />\n <span className=\"sr-only\">Close</span>\n </SheetPrimitive.Close>\n {children}\n </SheetPrimitive.Content>\n </SheetPortal>\n));\nSheetContent.displayName = SheetPrimitive.Content.displayName;\n\nconst SheetHeader = ({\n className,\n ...props\n}: React.HTMLAttributes<HTMLDivElement>) => (\n <div\n className={cn(\n 'flex flex-col space-y-2 text-center sm:text-left',\n className\n )}\n {...props}\n />\n);\nSheetHeader.displayName = 'SheetHeader';\n\nconst SheetFooter = ({\n className,\n ...props\n}: React.HTMLAttributes<HTMLDivElement>) => (\n <div\n className={cn(\n 'flex flex-col-reverse sm:flex-row sm:justify-end sm:space-x-2',\n className\n )}\n {...props}\n />\n);\nSheetFooter.displayName = 'SheetFooter';\n\nconst SheetTitle = React.forwardRef<\n React.ElementRef<typeof SheetPrimitive.Title>,\n React.ComponentPropsWithoutRef<typeof SheetPrimitive.Title>\n>(({ className, ...props }, ref) => (\n <SheetPrimitive.Title\n ref={ref}\n className={cn('text-lg font-semibold text-foreground', className)}\n {...props}\n />\n));\nSheetTitle.displayName = SheetPrimitive.Title.displayName;\n\nconst SheetDescription = React.forwardRef<\n React.ElementRef<typeof SheetPrimitive.Description>,\n React.ComponentPropsWithoutRef<typeof SheetPrimitive.Description>\n>(({ className, ...props }, ref) => (\n <SheetPrimitive.Description\n ref={ref}\n className={cn('text-sm text-muted-foreground', className)}\n {...props}\n />\n));\nSheetDescription.displayName = SheetPrimitive.Description.displayName;\n\nexport {\n Sheet,\n SheetPortal,\n SheetOverlay,\n SheetTrigger,\n SheetClose,\n SheetContent,\n SheetHeader,\n SheetFooter,\n SheetTitle,\n SheetDescription,\n};\n","import { Ellipsis, Menu, Upload } from 'lucide-react';\nimport { Link } from 'react-router-dom';\nimport { Button } from '@/components/ui/button';\nimport {\n Sheet,\n SheetContent,\n SheetHeader,\n SheetTitle,\n SheetTrigger,\n} from '@/components/ui/sheet';\nimport ProfilePicture from '../ui/profile-picture';\nimport { IUser } from '@/redux/auth/auth';\nimport {\n DropdownMenu,\n DropdownMenuContent,\n DropdownMenuGroup,\n DropdownMenuItem,\n DropdownMenuLabel,\n DropdownMenuSeparator,\n DropdownMenuTrigger,\n} from '../ui/dropdown-menu';\nimport LoginDialog from './LoginDialog';\n\ninterface MobileNavProps {\n isAuthenticated: boolean;\n user: IUser | null;\n onLogout: () => void;\n}\n\nfunction MobileNav({ isAuthenticated, user, onLogout }: MobileNavProps) {\n return (\n <Sheet>\n <SheetTrigger asChild>\n <Button variant=\"ghost\" size=\"icon\" className=\"text-white md:hidden\">\n <Menu className=\"h-6 w-6\" />\n </Button>\n </SheetTrigger>\n <SheetContent className=\"w-full sm:w-[400px] p-0\">\n <SheetHeader className=\"p-4 border-b text-left\">\n <SheetTitle className=\"text-lg font-bold\">Filefinity</SheetTitle>\n </SheetHeader>\n <div className=\"flex flex-col p-6 justify-between h-[93vh]\">\n <nav className=\"flex flex-col h-full justify-between\">\n <div className=\"flex flex-col space-y-4\">\n <a\n href=\"https://filefinity.featurebase.app/\"\n target=\"_blank\"\n rel=\"noopener noreferrer\"\n className=\"text-lg font-medium transition-colors hover:text-primary\"\n >\n News\n </a>\n <Link\n to=\"/myprojects\"\n className=\"text-lg font-medium transition-colors hover:text-primary\"\n >\n My Projects\n </Link>\n </div>\n <div className=\"flex flex-col space-y-4 py-4\">\n {isAuthenticated ? (\n <Link to=\"/project/create\">\n <Button\n size=\"lg\"\n variant=\"outline\"\n className=\"mt-4 border-gradient border-2 w-full justify-between\"\n >\n Upload Project\n <Upload />\n </Button>\n </Link>\n ) : (\n <>\n <LoginDialog variant=\"default\" />\n <Link to=\"/signup\">\n <Button\n size=\"lg\"\n variant=\"outline\"\n className=\"border-gradient border-2 w-full\"\n >\n Sign up\n </Button>\n </Link>\n </>\n )}\n </div>\n </nav>\n\n {isAuthenticated && (\n <div className=\"flex items-center pt-6 border-t justify-between\">\n <div className=\"flex items-center space-x-4\">\n <ProfilePicture\n src={user?.profilePicture}\n alt={user?.firstname}\n className=\"h-10 w-10 border-2\"\n />\n <p className=\"font-semibold\">{`${user?.firstname} ${user?.lastname}`}</p>\n </div>\n <DropdownMenu>\n <DropdownMenuTrigger asChild>\n <div className=\"border px-1 rounded-sm\">\n <Ellipsis />\n </div>\n </DropdownMenuTrigger>\n <DropdownMenuContent className=\"w-56 m-3\">\n <DropdownMenuLabel>My Account</DropdownMenuLabel>\n <DropdownMenuSeparator />\n <DropdownMenuGroup>\n <DropdownMenuItem asChild>\n <Link to=\"/profile\">Profile</Link>\n </DropdownMenuItem>\n <DropdownMenuItem onClick={onLogout}>\n Log out\n </DropdownMenuItem>\n </DropdownMenuGroup>\n </DropdownMenuContent>\n </DropdownMenu>\n </div>\n )}\n </div>\n </SheetContent>\n </Sheet>\n );\n}\n\nexport default MobileNav;\n","import { toast } from 'sonner';\nimport { DialogDescription, DialogTitle } from '@radix-ui/react-dialog';\nimport { useDispatch } from 'react-redux';\nimport { Mail, Undo2 } from 'lucide-react';\nimport { z } from 'zod';\nimport { useForgetPasswordForm } from '../useAuthForm';\nimport { DialogFooter, DialogHeader } from '@/components/ui/dialog';\nimport { Button } from '@/components/ui/button';\nimport {\n Form,\n FormControl,\n FormField,\n FormItem,\n FormLabel,\n FormMessage,\n} from '@/components/ui/form';\nimport { Input } from '@/components/ui/input';\nimport { forgetPasswordSchema } from '../auth.schema';\nimport {\n setShowForgetPasswordDialog,\n setShowLoginDialog,\n} from '@/redux/global/global.slice';\nimport Divider from '@/components/ui/divider';\nimport { useSendForgetPasswordEmailMutation } from '@/redux/auth/auth.api.slice';\n\nfunction ForgetPasswordForm() {\n const dispatch = useDispatch();\n const forgetPasswordForm = useForgetPasswordForm();\n const [\n sendPasswordResetEmail,\n { isLoading: isSendPasswordResetEmailLoading },\n ] = useSendForgetPasswordEmailMutation();\n\n async function handleForgetPasswordSubmit(\n values: z.infer<typeof forgetPasswordSchema>\n ) {\n try {\n const data = await sendPasswordResetEmail(values).unwrap();\n if (data.status !== 'success') {\n toast.error('Login Failed', {\n description: (data as any)?.errorMessage || 'Something went wrong',\n });\n }\n dispatch(setShowForgetPasswordDialog(false));\n toast.success('Reset mail sent successfully', {\n description: 'Check your inbox for the password reset link',\n });\n } catch (error: any) {\n toast.error('Failed to send reset mail', {\n description: error?.data?.errorMessage || 'Something went wrong',\n });\n }\n }\n\n const handleOpenLoginModal = () => {\n dispatch(setShowForgetPasswordDialog(false));\n dispatch(setShowLoginDialog(true));\n };\n return (\n <Form {...forgetPasswordForm}>\n <form\n onSubmit={forgetPasswordForm.handleSubmit(handleForgetPasswordSubmit)}\n >\n <DialogHeader>\n <DialogTitle className=\"font-primary text-lg font-bold text-center\">\n Forget Password\n </DialogTitle>\n <DialogDescription className=\"text-center font-secondary text-[16px] text-[#666666]\">\n Already having an account? <br />\n Continue now!\n </DialogDescription>\n </DialogHeader>\n <div className=\"flex flex-col py-2 gap-4\">\n <div className=\"flex flex-col gap-2\">\n <FormField\n control={forgetPasswordForm.control}\n name=\"email\"\n render={({ field }) => (\n <FormItem>\n <FormLabel>Email</FormLabel>\n <FormControl>\n <Input\n type=\"email\"\n placeholder=\"Enter your email address\"\n {...field}\n />\n </FormControl>\n <FormMessage />\n </FormItem>\n )}\n />\n </div>\n </div>\n <DialogFooter className=\"mt-2\">\n <div className=\"flex flex-col gap-2 w-full\">\n <Button\n type=\"submit\"\n className=\"w-full bg-black font-bold\"\n disabled={isSendPasswordResetEmailLoading}\n >\n <span className=\"flex items-center gap-2\">\n <Mail size=\"18px\" />\n <span>Send password reset to mail</span>\n </span>\n </Button>\n </div>\n </DialogFooter>\n </form>\n <Divider text=\"Or\" />\n <div className=\"flex flex-col gap-2\">\n <Button\n onClick={handleOpenLoginModal}\n className=\"w-full\"\n variant=\"outline\"\n type=\"button\"\n disabled={isSendPasswordResetEmailLoading}\n >\n <span className=\"flex items-center gap-2\">\n <Undo2 size=\"18px\" />\n <span>Back to login</span>\n </span>\n </Button>\n </div>\n </Form>\n );\n}\n\nexport default ForgetPasswordForm;\n","import { useDispatch, useSelector } from 'react-redux';\nimport { Button } from '@/components/ui/button';\nimport { Dialog, DialogContent, DialogTrigger } from '@/components/ui/dialog';\nimport { setShowForgetPasswordDialog } from '@/redux/global/global.slice';\nimport { IGlobalState } from '@/redux/global/global';\nimport ForgetPasswordForm from './ForgetPasswordForm';\n\nfunction ForgetPasswordDialog({\n variant,\n}: {\n variant:\n | 'default'\n | 'destructive'\n | 'outline'\n | 'secondary'\n | 'ghost'\n | 'link'\n | 'gradient'\n | 'toolbarActive';\n}) {\n const dispatch = useDispatch();\n\n const { showForgetPasswordDialog: forgetPasswordDialog } = useSelector(\n (state: { global: IGlobalState }) => state.global\n );\n\n return (\n <Dialog\n open={forgetPasswordDialog}\n onOpenChange={(open) => dispatch(setShowForgetPasswordDialog(open))}\n >\n <DialogTrigger asChild>\n <Button variant={variant} className=\"text-white hidden\">\n Forget Password\n </Button>\n </DialogTrigger>\n <DialogContent className=\"sm:max-w-[425px]\">\n <ForgetPasswordForm />\n </DialogContent>\n </Dialog>\n );\n}\n\nexport default ForgetPasswordDialog;\n","import { useState } from 'react';\nimport { ArrowUpRight } from 'lucide-react';\nimport { useSelector, useDispatch } from 'react-redux';\nimport { toast } from 'sonner';\nimport { Link, useNavigate } from 'react-router-dom';\nimport { Button } from '../ui/button';\nimport LoginDialog from '@/components/Navbar/LoginDialog';\nimport { selectCurrentUser, setLogout } from '@/redux/auth/auth.slice';\nimport { useLogoutMutation } from '@/redux/auth/auth.api.slice';\nimport { setShowLoginDialog } from '@/redux/global/global.slice';\nimport {\n DropdownMenu,\n DropdownMenuContent,\n DropdownMenuGroup,\n DropdownMenuItem,\n DropdownMenuLabel,\n DropdownMenuSeparator,\n DropdownMenuTrigger,\n} from '@/components/ui/dropdown-menu';\nimport fileFinityLogo from '@/assets/filefinity_navbar_logo.png';\nimport ProfilePicture from '../ui/profile-picture';\nimport VerifyAccountModal from '@/redux/auth/VerifyAccountModal';\nimport MobileNav from './MobileNav';\nimport ForgetPasswordDialog from '@/redux/auth/ForgetPassword/ForgetPasswordModal';\nimport GlobalSearch from '@/pages/Landing/GlobalSearch';\n\nfunction Navbar() {\n const { isAuthenticated, user, isVerified } = useSelector(selectCurrentUser);\n const [logout] = useLogoutMutation();\n const dispatch = useDispatch();\n const navigate = useNavigate();\n const [showWelcome, setShowWelcome] = useState(() => {\n return localStorage.getItem('hideWelcomeMessage') !== 'true';\n });\n\n const handleDismissWelcome = () => {\n setShowWelcome(false);\n localStorage.setItem('hideWelcomeMessage', 'true');\n };\n\n async function handleLogout() {\n await logout();\n dispatch(setLogout());\n dispatch(setShowLoginDialog(false));\n navigate('/');\n toast.success('Logged out successfully');\n }\n\n const APPSMITH_URL = import.meta.env.VITE_APPSMITH_URL;\n\n return (\n <div className=\"fixed top-0 z-50 w-full\">\n <ForgetPasswordDialog variant=\"outline\" />\n\n <div className=\"flex justify-between items-center w-full px-5 py-2 md:px-[5rem] bg-primary\">\n <Link\n to=\"/\"\n className=\"flex items-center justify-center gap-3 flex-shrink-0\"\n >\n <img\n src={fileFinityLogo || '/placeholder.svg'}\n alt=\"filefinity logo\"\n className=\"h-10 w-auto object-contain\"\n />\n </Link>\n <div className=\"hidden md:flex gap-1 items-center w-full justify-end\">\n <GlobalSearch className=\"mr-4 ml-6\" />\n <div className=\"flex items-center\">\n <a\n href=\"https://filefinity.featurebase.app/\"\n target=\"_blank\"\n rel=\"noopener noreferrer\"\n className=\"text-slate-100 flex p-2\"\n >\n News\n </a>\n <ArrowUpRight className=\"h-5 w-5 text-slate-100\" />\n </div>\n {isAuthenticated ? (\n <>\n <Link to=\"/myprojects\">\n <Button variant=\"default\">My Projects</Button>\n </Link>\n <DropdownMenu>\n <DropdownMenuTrigger asChild>\n <ProfilePicture\n src={user?.profilePicture}\n alt={user?.firstname}\n />\n </DropdownMenuTrigger>\n <DropdownMenuContent className=\"w-56 m-3\">\n <DropdownMenuLabel>My Account</DropdownMenuLabel>\n <DropdownMenuSeparator />\n <DropdownMenuGroup>\n <DropdownMenuItem asChild>\n <Link to=\"/profile\">Profile</Link>\n </DropdownMenuItem>\n <DropdownMenuItem asChild>\n <Link to=\"/changePassword\">Change Password</Link>\n </DropdownMenuItem>\n {user?.email.endsWith('@onefinitycnc.com') &&\n user?.isVerified ? (\n <DropdownMenuItem asChild>\n <div className=\"flex items-center\">\n <a\n href={APPSMITH_URL}\n target=\"_blank\"\n rel=\"noreferrer\"\n >\n Admin Dashboard\n </a>\n <ArrowUpRight className=\"h-5 w-5\" />\n </div>\n </DropdownMenuItem>\n ) : (\n // eslint-disable-next-line react/jsx-no-useless-fragment\n <></>\n )}\n <DropdownMenuItem onClick={handleLogout}>\n Log out\n </DropdownMenuItem>\n </DropdownMenuGroup>\n </DropdownMenuContent>\n </DropdownMenu>\n </>\n ) : (\n <>\n <LoginDialog variant=\"ghost\" />\n <Button variant=\"gradient\" className=\"border\" asChild>\n <Link to=\"/signup\">Sign up</Link>\n </Button>\n </>\n )}\n </div>\n\n <MobileNav\n isAuthenticated={isAuthenticated}\n user={user}\n onLogout={handleLogout}\n />\n </div>\n\n {isAuthenticated && !isVerified && (\n <p className=\"w-full py-1 text-center text-sm text-muted-foreground font-secondary bg-[#FFEA99]\">\n You have been added to the waitlist <VerifyAccountModal />\n </p>\n )}\n\n {showWelcome && (\n <div className=\"flex justify-between items-center text-sm text-muted-foreground font-secondary bg-[#FFEA99] py-2 px-5\">\n <span className=\"flex-1 text-center\">\n Welcome to Filefinity - Your One-Stop Destination for CNC router\n File Sharing!\n </span>\n <button\n type=\"button\"\n className=\"p-0 h-auto text-inherit hover:bg-transparent\"\n onClick={handleDismissWelcome}\n aria-label=\"Dismiss welcome message\"\n >\n ✕\n </button>\n </div>\n )}\n </div>\n );\n}\n\nexport default Navbar;\n","import { useState, useEffect } from 'react';\nimport { useSelector } from 'react-redux';\nimport { Input } from '@/components/ui/input';\nimport { Label } from '@/components/ui/label';\nimport { selectCurrentUser } from '@/redux/auth/auth.slice';\nimport { Button } from '@/components/ui/button';\nimport { useUpdateUserDataMutation } from '@/redux/auth/auth.api.slice';\nimport ProfilePicture from '@/components/ui/profile-picture';\n\nfunction EditButton({\n editMode,\n toggleEditMode,\n}: {\n editMode: boolean;\n toggleEditMode: () => void;\n}) {\n return (\n <Button size=\"lg\" className=\"px-8\" onClick={toggleEditMode}>\n {editMode ? 'Save Changes' : 'Edit Profile'}\n </Button>\n );\n}\n\nfunction Profile() {\n const { user } = useSelector(selectCurrentUser);\n const [updateUser] = useUpdateUserDataMutation();\n const [editMode, setEditMode] = useState(false);\n const [firstname, setFirstname] = useState('');\n const [lastname, setLastname] = useState('');\n\n useEffect(() => {\n if (user) {\n setFirstname(user.firstname || '');\n setLastname(user.lastname || '');\n }\n }, [user]);\n\n const toggleEditMode = () => {\n if (editMode) {\n updateUser({\n firstname,\n lastname,\n });\n }\n setEditMode(!editMode);\n };\n\n return (\n <div className=\"container mx-auto px-4 py-8 max-w-5xl pb-24 py-[84px]\">\n <h1 className=\"text-3xl font-bold text-center mb-12 font-primary\">\n My Profile\n </h1>\n <div className=\"grid grid-cols-1 md:grid-cols-3 gap-12\">\n <div className=\"md:col-span-1 flex flex-col items-center space-y-4\">\n <ProfilePicture\n src={user?.profilePicture}\n alt={firstname}\n className=\"w-48 h-48\"\n />\n </div>\n <div className=\"md:col-span-2 space-y-8\">\n <div className=\"space-y-4\">\n <Label\n htmlFor=\"firstname\"\n className=\"text-md font-semibold font-secondary\"\n >\n First Name\n </Label>\n <Input\n id=\"firstname\"\n name=\"firstname\"\n value={firstname}\n onChange={(e) => setFirstname(e.target.value)}\n placeholder=\"Your firstname\"\n className=\"text-md font-tertiary\"\n disabled={!editMode}\n />\n </div>\n <div className=\"space-y-4\">\n <Label\n htmlFor=\"lastname\"\n className=\"text-md font-semibold font-secondary\"\n >\n Last Name\n </Label>\n <Input\n id=\"lastname\"\n name=\"lastname\"\n value={lastname}\n onChange={(e) => setLastname(e.target.value)}\n placeholder=\"Your lastname\"\n className=\"text-md font-tertiary\"\n disabled={!editMode}\n />\n </div>\n <div className=\"space-y-4\">\n <Label\n htmlFor=\"email\"\n className=\"text-md font-semibold font-secondary\"\n >\n Email\n </Label>\n <Input\n id=\"email\"\n name=\"email\"\n type=\"email\"\n value={user?.email}\n placeholder=\"Your email\"\n className=\"text-md font-tertiary\"\n disabled\n />\n </div>\n </div>\n </div>\n <div className=\"mt-12 flex justify-end\">\n <EditButton editMode={editMode} toggleEditMode={toggleEditMode} />\n </div>\n </div>\n );\n}\n\nexport default Profile;\n","function NoPosts() {\n return (\n <svg\n width=\"400\"\n height=\"300\"\n xmlns=\"http://www.w3.org/2000/svg\"\n viewBox=\"0 0 400 300\"\n >\n <circle cx=\"200\" cy=\"130\" r=\"100\" fill=\"#f3f4f6\" />\n\n <rect\n x=\"135\"\n y=\"100\"\n width=\"130\"\n height=\"80\"\n fill=\"#a3bffa\"\n rx=\"5\"\n ry=\"5\"\n />\n <rect\n x=\"140\"\n y=\"85\"\n width=\"120\"\n height=\"20\"\n fill=\"#7f9cf5\"\n rx=\"3\"\n ry=\"3\"\n />\n\n <text\n x=\"200\"\n y=\"250\"\n fontSize=\"16\"\n fontFamily=\"Arial, sans-serif\"\n fill=\"#4a5568\"\n textAnchor=\"middle\"\n >\n No posts uploaded yet!\n </text>\n <text\n x=\"200\"\n y=\"270\"\n fontSize=\"12\"\n fontFamily=\"Arial, sans-serif\"\n fill=\"#a0aec0\"\n textAnchor=\"middle\"\n >\n Start uploading your first post now.\n </text>\n </svg>\n );\n}\n\nexport default NoPosts;\n","import PostCard from '@/components/Post/PostCard';\nimport { useGetPostByUserIdQuery } from './post.api.slice';\nimport { Skeleton } from '@/components/ui/skeleton';\nimport NoPosts from '@/components/Illustrations/NoPosts';\n\nfunction UserPostsList({ userId }: { userId: string }) {\n const { data: userPosts, isLoading } = useGetPostByUserIdQuery(userId);\n\n if (isLoading)\n return (\n <div className=\"flex flex-wrap gap-5 items-center justify-center\">\n {Array.from({ length: 12 }).map((_, index) => (\n <Skeleton key={index} className=\"w-[320px] h-[320px]\" />\n ))}\n </div>\n );\n\n if (userPosts?.length === 0) {\n return (\n <div className=\"flex items-center justify-center\">\n <NoPosts />\n </div>\n );\n }\n\n return (\n <div className=\"flex flex-wrap sm:justify-between justify-center py-2 w-full gap-10 items-center\">\n {userPosts?.map((post) => (\n <PostCard\n key={post._id}\n id={post._id}\n authorName={`${post.user.firstname} ${post.user.lastname}`}\n authorAvatar={post.user.profilePicture}\n title={post.title}\n likesCount={post.likes}\n commentsCount={post.comments}\n attachments={post.attachments}\n createdAt={post.createdAt}\n category={post.category}\n description={post.description}\n hasLikedByUser={post.hasLikedByUser}\n isOnefinityOfficial={post.user.isOnefinityOfficial}\n isOwner={post.user._id === userId}\n visibility={post.visibility}\n />\n ))}\n </div>\n );\n}\n\nexport default UserPostsList;\n","import { Link } from 'react-router-dom';\nimport { useSelector } from 'react-redux';\nimport { selectCurrentUser, selectUserId } from '@/redux/auth/auth.slice';\nimport UserPostsList from '@/redux/post/UserPostsList';\nimport { Title } from '@/components/ui/title';\nimport { Button } from '@/components/ui/button';\n\nfunction MyModels() {\n const userId = useSelector(selectUserId);\n const { isAuthenticated, isVerified } = useSelector(selectCurrentUser);\n\n return (\n <div className=\"px-5 md:px-[5rem] py-[32px] pb-24 py-[84px]\">\n {isAuthenticated && isVerified && (\n <>\n <Title title=\"CNC Projects\" />\n <div className=\"h-[270px] border-[#7C7C7C] flex items-center justify-center border-dashed border-[1.5px] rounded-md mb-[30px] flex-col\">\n {/* <ModalUploadDialog\n modalDialog={modelDialog}\n setModalDialog={setModelDialog}\n /> */}\n <Button variant=\"default\" asChild>\n <Link to=\"/project/create\">Create Project</Link>\n </Button>\n <p className=\"w-auto sm:w-[537px] text-[#7C7C7C] text-center text-sm mt-[20px] sm:p-0 p-4\">\n Upload your 3D model! After uploading, you`ll be prompted to add\n project details. We`ll review everything to ensure quality before\n it`s shared publicly.\n </p>\n </div>\n </>\n )}\n <Title title=\"My Projects\" />\n <UserPostsList userId={userId} />\n </div>\n );\n}\n\nexport default MyModels;\n","import { ReactNode, useEffect } from 'react';\nimport { useSelector } from 'react-redux';\nimport { useNavigate } from 'react-router-dom';\nimport { selectCurrentUser } from '@/redux/auth/auth.slice';\n\nfunction PrivateRoute({ children }: { children: ReactNode }) {\n const { user, isAuthenticated, isLoading } = useSelector(selectCurrentUser);\n const navigate = useNavigate();\n\n useEffect(() => {\n if (isLoading) return;\n\n if (!isAuthenticated) {\n navigate('/');\n }\n if (!user) {\n navigate('/');\n }\n }, [user, isAuthenticated, isLoading, navigate]);\n\n return children;\n}\n\nexport default PrivateRoute;\n","import { useState } from 'react';\nimport { Badge } from '@/components/ui/badge';\nimport { useGetPostByIdAndApiKeyQuery } from '@/redux/post/post.api.slice';\nimport PostDetailCarousel from '@/components/Post/PostDetailCarousel';\nimport { getUserFullName } from '@/lib/utils';\nimport NotFound from '../NotFound';\nimport ProfilePicture from '@/components/ui/profile-picture';\nimport useSearchParamActions from '@/customHooks/useSearchParamActions';\nimport DescriptionWithLinks from '@/components/Post/DescriptionWithLinks';\nimport OnefinityOfficialIcon from '@/assets/onefinity_officials_badge.png';\nimport ShareButton from '@/components/Post/ShareButton';\nimport LikeButton from '@/redux/like/LikeButton';\nimport { Separator } from '@/components/ui/separator';\nimport ToolsDataCard from '../PostDetail/ToolsDataCard';\nimport JobSettingsCard from '../PostDetail/JobSettingsCard';\nimport JobDetailsCard from '../PostDetail/JobDetailsCard';\nimport OnefinityDetailsCard from '../PostDetail/OnefinityDetailsCard';\nimport { Card, CardTitle } from '@/components/ui/card';\nimport DownloadPostAttachementsModal from '@/redux/post/DownloadPostAttachementsModal';\nimport { filterAttachments } from '@/redux/post/post.utils';\nimport PostStatusBadge from '@/components/Post/PostStatusBadge';\nimport { IPostVisibility } from '@/redux/post/post';\n\nfunction PreviewModalDetail() {\n const { getSearchParam } = useSearchParamActions();\n const apiKey = getSearchParam('apiKey');\n const postId = getSearchParam('postId');\n\n const { data: post, isLoading } = useGetPostByIdAndApiKeyQuery({\n apiKey: apiKey || '',\n postId: postId || '',\n });\n\n const [modelIndex, setModelIndex] = useState<number>(0);\n\n if (isLoading) return <div>Loading...</div>;\n\n if (!post || !apiKey || !postId) {\n return <NotFound />;\n }\n\n return (\n <div className=\"overflow-y-auto scroll-snap-type-y-mandatory pb-24 py-[84px]\">\n <div className=\"mx-auto rounded-none border-none shadow-none px-5 py-[2rem]\">\n <div className=\"flex flex-wrap gap-10 lg:gap-0 lg:flex-nowrap\">\n <div className=\"flex flex-col lg:w-[50%] lg:border-r-[1px] border-[#E0E0E0] items-center justify-between px-0 lg:px-8 h-[670px] w-full border-r-0\">\n <div className=\"flex justify-between w-full items-center flex-wrap items-center\">\n <div>\n <h1 className=\"font-primary font-bold text-2xl capitalize\">\n {post?.title}\n </h1>\n <div className=\"flex items-center gap-2 py-3\">\n <ProfilePicture\n className=\"w-[30px] h-[30px]\"\n src={post?.user?.profilePicture}\n alt={post?.user?.firstname}\n />\n <div className=\"flex gap-2 items-center\">\n <span className=\"text-sm text-[#666666]\">\n {getUserFullName(post?.user)}\n </span>\n {post.user.isOnefinityOfficial ? (\n <img\n src={OnefinityOfficialIcon}\n className=\"h-6 w-6\"\n alt=\"onefinity official\"\n />\n ) : (\n // eslint-disable-next-line react/jsx-no-useless-fragment\n <></>\n )}\n </div>\n </div>\n </div>\n <PostStatusBadge\n visibility={post.visibility as IPostVisibility}\n />\n </div>\n <PostDetailCarousel\n attachments={filterAttachments(post?.attachments)}\n modelIndex={modelIndex}\n setModelIndex={setModelIndex}\n />\n </div>\n <div className=\"h-[650px] overflow-y-auto lg:w-[50%] w-full custom-scrollbar relative\">\n <div className=\"space-y-1 flex justify-between w-full items-center px-0 lg:px-[35px] sticky top-0 bg-white z-10 pb-5 shadow-sm mb-3\">\n <h1 className=\"text-2xl font-semibold tracking-tight\">\n Project Details\n </h1>\n <div className=\"flex gap-2\">\n <DownloadPostAttachementsModal\n attachments={post?.attachments}\n postTitle={post.title}\n />\n <ShareButton\n shareUrl={`${window.location.origin}/model/${postId}`}\n />\n <LikeButton\n liked={post?.hasLikedByUser}\n postId={postId}\n likes={post?.likes}\n />\n </div>\n </div>\n <div className=\"px-0 lg:px-[35px]\">\n <DescriptionWithLinks description={post?.description} />\n <Separator className=\"my-4\" />\n <div>\n <ToolsDataCard\n post={post}\n modelIndex={modelIndex}\n setModelIndex={setModelIndex}\n />\n <div className=\"grid gap-6 sm:grid-cols-2\">\n <JobDetailsCard post={post} />\n <JobSettingsCard post={post} />\n </div>\n <OnefinityDetailsCard post={post} />\n </div>\n <Card className=\"my-5 p-6\">\n <CardTitle># Hashtags</CardTitle>\n <div className=\"flex flex-wrap gap-5 mt-5\">\n {post.tags.map((tag) => (\n <Badge\n key={tag._id}\n variant=\"secondary\"\n className=\"px-3 py-1 rounded-md font-medium capitalize\"\n >\n #{tag.name}\n </Badge>\n ))}\n </div>\n </Card>\n </div>\n </div>\n </div>\n </div>\n </div>\n );\n}\n\nexport default PreviewModalDetail;\n","function SectionHeader({\n title,\n description,\n align = 'center',\n}: {\n title: string;\n description: string;\n // eslint-disable-next-line react/require-default-props\n align?: 'left' | 'right' | 'center';\n}) {\n return (\n <div className={`text-${align} py-5`}>\n <h2 className=\"text-xl font-medium font-primary\">{title}</h2>\n <p className=\"text-muted-foreground mt-4 font-normal text-sm\">\n {description}\n </p>\n </div>\n );\n}\n\nexport default SectionHeader;\n","import * as React from 'react';\nimport { cn } from '@/lib/utils';\nimport { Button } from './button';\n\ninterface DropZoneProps\n extends Omit<React.HTMLAttributes<HTMLDivElement>, 'onDrop'> {\n onDrop?: (event: React.ChangeEvent<HTMLInputElement>) => void;\n dragActiveClassName?: string;\n preview?: string;\n setPreview?: React.Dispatch<React.SetStateAction<string | undefined>>;\n}\n\nconst DropZone = React.forwardRef<HTMLDivElement, DropZoneProps>(\n (\n {\n className,\n dragActiveClassName = 'border-primary',\n onDrop,\n preview,\n setPreview,\n children,\n ...props\n },\n ref\n ) => {\n const [isDragging, setIsDragging] = React.useState(false);\n\n const inputRef = React.useRef<HTMLInputElement | null>(null);\n\n const handleDragOver = React.useCallback(\n (event: React.DragEvent<HTMLDivElement>) => {\n event.preventDefault();\n setIsDragging(true);\n },\n []\n );\n\n const handleDragLeave = React.useCallback(() => {\n setIsDragging(false);\n }, []);\n\n const handleDrop = React.useCallback(\n (event: React.DragEvent<HTMLDivElement>) => {\n event.preventDefault();\n setIsDragging(false);\n\n const files = event.dataTransfer.files\n ? Array.from(event.dataTransfer.files)\n : [];\n\n if (inputRef.current) {\n const dataTransfer = new DataTransfer();\n files.forEach((file) => dataTransfer.items.add(file));\n\n inputRef.current.files = dataTransfer.files;\n\n if (onDrop) {\n const changeEvent = new Event('change', {\n bubbles: true,\n cancelable: true,\n }) as Event & { target: HTMLInputElement };\n\n inputRef.current.dispatchEvent(changeEvent);\n }\n }\n },\n [onDrop]\n );\n\n const handleFileChange = React.useCallback(\n (event: React.ChangeEvent<HTMLInputElement>) => {\n if (onDrop) {\n onDrop(event);\n }\n },\n [onDrop]\n );\n\n if (preview && setPreview) {\n return (\n <div className=\"border-2 border-dashed rounded-lg text-center relative group overflow-hidden\">\n <img\n src={preview}\n alt=\"preview\"\n className=\"h-[228px] w-full object-contain\"\n />\n <Button\n type=\"button\"\n onClick={() => {\n setPreview('');\n }}\n className=\"absolute -bottom-12 left-1/2 transform -translate-x-1/2 transition-transform duration-300 group-hover:-translate-y-14\"\n variant=\"secondary\"\n >\n Close Preview\n </Button>\n </div>\n );\n }\n\n return (\n <div\n ref={ref}\n className={cn(\n 'border-2 border-dashed rounded-lg p-6 text-center relative',\n isDragging ? dragActiveClassName : 'border-input',\n className\n )}\n onDragOver={handleDragOver}\n onDragLeave={handleDragLeave}\n onDrop={handleDrop}\n {...props}\n >\n <input\n ref={inputRef}\n type=\"file\"\n multiple\n className=\"absolute inset-0 w-full h-full opacity-0 cursor-pointer\"\n onChange={handleFileChange}\n />\n {children}\n </div>\n );\n }\n);\n\nDropZone.displayName = 'DropZone';\n\nexport { DropZone };\n","function ErrorMessage({ error }: { error: string }) {\n if (error) {\n return <p className=\"text-red-700\">{error}</p>;\n }\n return <p />;\n}\n\nexport default ErrorMessage;\n","import { ChangeEvent, Dispatch, SetStateAction } from 'react';\nimport { FileBox, Upload, X } from 'lucide-react';\nimport { Button } from '@/components/ui/button';\nimport { Input } from '@/components/ui/input';\nimport SectionHeader from '@/components/FullPageCarousel/SectionHeader';\nimport { DropZone } from '@/components/ui/drop-zone';\nimport ErrorMessage from '@/components/ErrorMessage';\nimport { IPostUploadData } from '@/redux/post/post.d';\n\nfunction ModelUpload({\n formData,\n errors,\n setFormData,\n}: {\n formData: IPostUploadData;\n errors: { [key: string]: string };\n setFormData: Dispatch<SetStateAction<IPostUploadData>>;\n}) {\n const handleFileChange = (event: ChangeEvent<HTMLInputElement>) => {\n const modelFiles = event.target.files;\n if (modelFiles && modelFiles[0]) {\n const modelFileList = Array.from(modelFiles);\n\n const newModelList = modelFileList\n .filter(\n (newFile) =>\n !formData.models?.some(\n (existingModel) => existingModel.modelFile?.name === newFile.name\n )\n )\n .map((model) => ({\n id: Date.now().toString(),\n modelFile: model,\n modelURL: URL.createObjectURL(model),\n }));\n\n setFormData((prev) => {\n const existingToolData = prev.toolData || [];\n\n return {\n ...prev,\n models: [...(prev.models || []), ...newModelList],\n toolData: [...existingToolData],\n };\n });\n }\n };\n\n const handleRemoveFile = (file: File) => {\n setFormData((prev: IPostUploadData) => {\n const removedModel = prev.models.find(\n (model) => model.modelFile?.name === file.name\n );\n\n const updatedModels = prev.models.filter(\n (model) => model.modelFile?.name !== file.name\n );\n\n const updatedToolData = (prev.toolData || []).filter(\n (tool) => tool.modelId !== removedModel?.id\n );\n\n return {\n ...prev,\n models: updatedModels,\n toolData: updatedToolData,\n };\n });\n };\n\n return (\n <div className=\"space-y-6 font-tertiary\">\n <div>\n <SectionHeader\n title=\"Upload your CNC models\"\n description=\"Select relevant documents to complete your upload\"\n />\n <DropZone onDrop={handleFileChange}>\n <Upload className=\"mx-auto h-12 w-12 text-muted-foreground\" />\n <div className=\"mt-4\">\n <p className=\"text-sm text-muted-foreground\">\n Select a file or drag and drop here\n </p>\n <p className=\"text-xs text-muted-foreground mt-1\">\n GCODE, NGC, or NC files only\n </p>\n </div>\n <Input\n type=\"file\"\n className=\"hidden\"\n onChange={handleFileChange}\n accept=\".gcode,.ngc,.nc\"\n id=\"file-upload\"\n multiple\n />\n <Button\n variant=\"outline\"\n className=\"mt-4 border-gradient border-2\"\n onClick={() => document.getElementById('file-upload')?.click()}\n >\n Select file\n </Button>\n </DropZone>\n <ErrorMessage error={errors.models} />\n </div>\n\n <div className=\"flex flex-col gap-4 max-h-56 overflow-auto\">\n {formData.models && formData.models.length > 0 && (\n <div className=\"space-y-4\">\n {formData.models.map((model) => (\n <div\n className=\"flex items-center gap-2 py-[10px] px-[19px]\"\n key={\n model.modelFile\n ? `${model.modelFile.name}-${model.modelFile.size}`\n : 'undefined-key'\n }\n >\n <FileBox className=\"text-[#0F91D2]\" />\n <div className=\"flex-1 truncate\">\n {model.modelFile?.name || 'Unknown File'}\n </div>\n <Button\n variant=\"ghost\"\n className=\"rounded-full cursor-pointer\"\n onClick={() =>\n model.modelFile && handleRemoveFile(model.modelFile)\n }\n >\n <X className=\"h-3 w-3\" />\n </Button>\n </div>\n ))}\n </div>\n )}\n </div>\n </div>\n );\n}\n\nexport default ModelUpload;\n","export default \"__VITE_ASSET__CTCbXHOM__\"","import { X } from 'lucide-react';\nimport { useNavigate } from 'react-router-dom';\nimport fileFinityLogo from '@/assets/filefinity-logo.png';\nimport { Button } from '../ui/button';\n\nfunction CarouselHeader({ disabled }: { disabled: boolean }) {\n const navigate = useNavigate();\n\n return (\n <div className=\"flex justify-between max-sm:p-[12px] max-md:p-[22px] p-[44px] w-full items-center\">\n <Button variant=\"link\" onClick={() => navigate('/')} disabled={disabled}>\n <div className=\"flex items-center justify-center gap-1\">\n <img src={fileFinityLogo} className=\"h-6\" alt=\"filefinity logo\" />\n <h1 className=\"font-primary font-semibold text-xl\">Filefinity</h1>\n </div>\n </Button>\n <Button variant=\"link\" onClick={() => navigate('/')} disabled={disabled}>\n <div className=\"p-3 bg-[#D9D9D9] hover:bg-[#F4F4F4] rounded-full\">\n <X className=\"h-2.5 w-2.5 \" />\n </div>\n </Button>\n </div>\n );\n}\n\nexport default CarouselHeader;\n","const isValidYoutubeUrl = (url: string): boolean => {\n try {\n const urlObj = new URL(url);\n\n const validDomains = [\n 'youtube.com',\n 'www.youtube.com',\n 'm.youtube.com',\n 'youtube-nocookie.com',\n 'youtu.be',\n 'www.youtu.be',\n ];\n\n if (!validDomains.some((domain) => urlObj.hostname.endsWith(domain))) {\n return false;\n }\n\n const videoIdRegex = /^[a-zA-Z0-9_-]{11}$/;\n\n if (urlObj.pathname === '/watch') {\n const videoId = urlObj.searchParams.get('v');\n return videoId !== null && videoIdRegex.test(videoId);\n }\n\n if (urlObj.hostname.includes('youtu.be')) {\n const videoId = urlObj.pathname.slice(1);\n return videoIdRegex.test(videoId);\n }\n\n if (urlObj.pathname.startsWith('/shorts/')) {\n const videoId = urlObj.pathname.replace('/shorts/', '');\n return videoIdRegex.test(videoId);\n }\n\n if (urlObj.pathname.startsWith('/embed/')) {\n const videoId = urlObj.pathname.replace('/embed/', '');\n return videoIdRegex.test(videoId);\n }\n\n if (urlObj.pathname.startsWith('/v/')) {\n const videoId = urlObj.pathname.replace('/v/', '');\n return videoIdRegex.test(videoId);\n }\n\n return false;\n } catch (error) {\n return false;\n }\n};\n\nexport const getYouTubeId = (url: string): string | null => {\n try {\n const parsedURL = new URL(url);\n\n if (\n parsedURL.hostname.includes('youtube.com') ||\n parsedURL.hostname.includes('m.youtube.com')\n ) {\n const videoID = parsedURL.searchParams.get('v');\n if (videoID) {\n return videoID;\n }\n\n const shortsMatch = parsedURL.pathname.match(\n /\\/shorts\\/([a-zA-Z0-9_-]{11})/\n );\n if (shortsMatch) {\n return shortsMatch[1];\n }\n\n const embedMatch = parsedURL.pathname.match(\n /(?:\\/embed\\/|\\/v\\/)([a-zA-Z0-9_-]{11})/\n );\n if (embedMatch) {\n return embedMatch[1];\n }\n }\n\n if (parsedURL.hostname === 'youtu.be') {\n const videoID = parsedURL.pathname.substring(1);\n if (videoID.length === 11) {\n return videoID;\n }\n }\n\n return null;\n } catch (error) {\n return null;\n }\n};\n\nconst getYouTubeTitle = async (url: string): Promise<string | null> => {\n try {\n const videoId = getYouTubeId(url);\n if (!videoId) return null;\n\n const oEmbedUrl = `https://www.youtube.com/oembed?url=https://www.youtube.com/watch?v=${videoId}&format=json`;\n\n const response = await fetch(oEmbedUrl);\n if (!response.ok) throw new Error('Failed to fetch video title');\n\n const data = await response.json();\n return data.title;\n } catch (error) {\n return null;\n }\n};\n\nexport { getYouTubeTitle, isValidYoutubeUrl };\n","import { z } from 'zod';\nimport {\n GroupedEnum,\n IBitType,\n IBitUsedUnit,\n IBuiltWith,\n IJobType,\n ILaserOrEndmill,\n IMaterialUsed,\n IOnefinityController,\n IOnefinityModel,\n IOnefinitySize,\n IProbeForZHeightCommand,\n ISoftwareUsed,\n IToolSetter,\n IUnits,\n IXYDatumPosition,\n IZZeroPosition,\n} from './post.d';\nimport { getGroupedOptionsFlat } from './post.utils';\nimport { isValidYoutubeUrl } from '@/lib/youtube';\n\nexport function createEnum<T extends string>(values: T[]): [T, ...T[]] {\n if (values.length === 0) {\n throw new Error('Enum values must have at least one item');\n }\n return values as [T, ...T[]];\n}\n\nexport const modelUploadSchema = z.object({\n models: z\n .array(\n z.object({\n modelFile: z\n .instanceof(File, {\n message:\n 'The uploaded file is invalid. Please upload a valid file.',\n })\n .refine(\n (file) => {\n const fileName = file.name.toLowerCase();\n const allowedExtensions: string[] = ['.gcode', '.ngc', '.nc'];\n return allowedExtensions.some((ext) => fileName.endsWith(ext));\n },\n {\n message:\n 'Invalid file type. Only GCODE, NGC, or NC files are allowed.',\n }\n )\n .optional(),\n modelURL: z.string().optional(),\n })\n )\n .min(1, { message: 'At least one model must be uploaded.' }),\n});\n\nexport const imageExtensions = ['.jpg', '.jpeg', '.png', '.webp', '.svg'];\n\nexport const allowedMediaExtensions = [\n '.crv',\n '.crv3d',\n '.art',\n '.c2d',\n '.f3d',\n '.ai',\n '.pdf',\n '.dxf',\n '.stl',\n ...imageExtensions,\n];\n\nexport const mediaUploadSchema = z.object({\n mediaFiles: z\n .array(\n z\n .instanceof(File, {\n message: 'Each uploaded item must be a valid file.',\n })\n .refine(\n (file) => {\n const fileName = file.name.toLowerCase();\n return allowedMediaExtensions.some((ext) => fileName.endsWith(ext));\n },\n {\n message: `Invalid file type. Only Images, Vectors, Documents are allowed.`,\n }\n ),\n { message: 'At least one media file is required.' }\n )\n .min(1, { message: 'At least one media file is required.' })\n .optional(),\n youtubeAttachments: z\n .array(\n z\n .string()\n .url({ message: 'Must be a valid URL' })\n .refine(isValidYoutubeUrl, {\n message: 'Must be a valid youtube shorts URL',\n })\n )\n .refine((urls) => new Set(urls).size === urls.length, {\n message: 'YouTube URL cant be added twice.',\n })\n .optional()\n .default([]),\n});\n\nexport const postUploadSchema = z.object({\n title: z.string().min(3, {\n message: 'Title must be at least 3 characters long',\n }),\n description: z.string().min(3, {\n message: 'Description must be at least 3 characters long',\n }),\n category: z.string().min(2, {\n message: 'Category must be selected',\n }),\n tags: z.array(z.string()).min(2, {\n message: 'At least two tags are required',\n }),\n builtWith: z\n .enum(createEnum(Object.values(IBuiltWith)))\n .refine((val) => !!val, {\n message: 'Please select a valid built with.',\n }),\n});\n\nexport const onefinityModelSchema = z.object({\n onefinityModel: z\n .enum(createEnum(Object.values(IOnefinityModel)))\n .refine((val) => !!val, {\n message: 'Please select a valid Onefinity model.',\n }),\n onefinityController: z\n .enum(createEnum(Object.values(IOnefinityController)))\n .refine((val) => !!val, { message: 'Please select a valid controller.' }),\n onefinitySize: z\n .enum(createEnum(Object.values(IOnefinitySize)))\n .refine((val) => !!val, {\n message: 'Please select a valid Onefinity size.',\n }),\n});\n\nexport const modelToolMappingSchema = z\n .object({\n selectedModel: z.number(),\n toolUnit: z.nativeEnum(IBitUsedUnit, {\n required_error: 'Tool unit is required',\n }),\n toolUsed: z.preprocess(\n (val) => Number(val),\n z.number({\n required_error: 'Tool size is required',\n invalid_type_error: 'Tool size must be a number',\n })\n ),\n toolType: z.nativeEnum(IBitType, {\n required_error: 'Tool type is required',\n }),\n })\n .superRefine((data, ctx) => {\n if (data.toolUnit === IBitUsedUnit.INCHES) {\n if (data.toolUsed < 0.01 || data.toolUsed > 10) {\n ctx.addIssue({\n code: z.ZodIssueCode.custom,\n path: ['toolUsed'],\n message: 'Tool size must be between 0.01 and 10 inches',\n });\n }\n } else if (data.toolUnit === IBitUsedUnit.MM) {\n if (data.toolUsed < 0.01 || data.toolUsed > 1000) {\n ctx.addIssue({\n code: z.ZodIssueCode.custom,\n path: ['toolUsed'],\n message: 'Tool size must be between 0.01 and 1000 mm',\n });\n }\n } else {\n ctx.addIssue({\n code: z.ZodIssueCode.custom,\n path: ['toolUnit'],\n message: 'Invalid tool unit',\n });\n }\n });\n\nexport const modelToolMappingPageSchema = z\n .object({\n models: z.array(z.any()),\n toolData: z.array(z.any()),\n })\n .superRefine((data, ctx) => {\n const modelIdList = data.models.map((model) => model.id);\n const modelIdInToolDataList = data.toolData.map((tool) => tool.modelId);\n\n if (!modelIdList.every((id) => modelIdInToolDataList.includes(id))) {\n ctx.addIssue({\n code: z.ZodIssueCode.custom,\n path: ['selectedModel'],\n message:\n 'All models must have a tool assigned, switch models here to add tools',\n });\n }\n });\n\nexport const jobSetupModelSchema = z.object({\n softwareUsed: z\n .enum(createEnum(Object.values(ISoftwareUsed)))\n .refine((val) => !!val, { message: 'Please select the software used.' }),\n materialUsed: z\n .enum(\n createEnum(getGroupedOptionsFlat(IMaterialUsed as unknown as GroupedEnum))\n )\n .refine((val) => !!val, { message: 'Please select the material used.' }),\n jobType: z\n .enum(createEnum(Object.values(IJobType)))\n .refine((val) => !!val, { message: 'Please select a job type.' }),\n jobSizeWidth: z.number().refine((val) => val > 0, {\n message: 'Job width must be a positive number.',\n }),\n jobSizeHeight: z.number().refine((val) => val > 0, {\n message: 'Job height must be a positive number.',\n }),\n jobSizeThickness: z.number().refine((val) => val > 0, {\n message: 'Job thickness must be a positive number.',\n }),\n units: z\n .enum(createEnum(Object.values(IUnits)))\n .refine((val) => !!val, { message: 'Please select the units.' }),\n zZeroPosition: z\n .enum(createEnum(Object.values(IZZeroPosition)))\n .refine((val) => !!val, { message: 'Please select the Z zero position.' }),\n xyDatumPosition: z\n .enum(createEnum(Object.values(IXYDatumPosition)))\n .refine((val) => !!val, {\n message: 'Please select the XY datum position.',\n }),\n laserOrEndmill: z\n .enum(createEnum(Object.values(ILaserOrEndmill)))\n .refine((val) => !!val, {\n message: 'Please select the tool type (Laser or Endmill).',\n }),\n toolSetter: z\n .enum(createEnum(Object.values(IToolSetter)))\n .refine((val) => !!val, { message: 'Please select the tool setter.' }),\n probeForZHeightCommand: z\n .enum(createEnum(Object.values(IProbeForZHeightCommand)))\n .refine((val) => !!val, {\n message: 'Please select the probe for Z height command.',\n }),\n spindleSpeed: z\n .number()\n .min(6000, { message: 'Spindle speed must be at least 6000 RPM.' })\n .max(24000, { message: 'Spindle speed must be at most 24000 RPM.' })\n .refine((val) => val > 0, {\n message: 'Please enter a valid spindle speed.',\n }),\n});\n","import { ZodError } from 'zod';\nimport { ChangeEvent, Dispatch, SetStateAction, useState } from 'react';\nimport { FileImage, Upload, X, Youtube } from 'lucide-react';\nimport { Button } from '@/components/ui/button';\nimport { Input } from '@/components/ui/input';\nimport SectionHeader from '@/components/FullPageCarousel/SectionHeader';\nimport { DropZone } from '@/components/ui/drop-zone';\nimport ErrorMessage from '@/components/ErrorMessage';\nimport {\n allowedMediaExtensions,\n mediaUploadSchema,\n} from '@/redux/post/post.schema';\nimport { IPostUploadData } from '@/redux/post/post.d';\n\nfunction MediaUpload({\n formData,\n errors,\n setFormData,\n}: {\n formData: IPostUploadData;\n errors: { [key: string]: string };\n setFormData: Dispatch<SetStateAction<IPostUploadData>>;\n}) {\n const [youtubeUrl, setYoutubeUrl] = useState('');\n const [errorMessage, setErrorMessage] = useState('');\n\n const handleFileChange = (event: ChangeEvent<HTMLInputElement>) => {\n if (!event.target.files || !event.target.files[0]) {\n return;\n }\n const newFiles = Array.from(event.target.files);\n setFormData((prev) => ({\n ...prev,\n mediaFiles: [...(prev.mediaFiles || []), ...newFiles],\n }));\n };\n\n const handleRemoveFile = (file: File) => {\n setFormData((prev) => ({\n ...prev,\n mediaFiles: (prev.mediaFiles || []).filter((f) => f.name !== file.name),\n }));\n };\n\n const handleAddYoutubeUrl = () => {\n if (youtubeUrl.trim()) {\n try {\n mediaUploadSchema.parse({\n youtubeAttachments: [\n ...(formData.youtubeAttachments || []),\n youtubeUrl.trim(),\n ],\n });\n\n setFormData((prev) => ({\n ...prev,\n youtubeAttachments: [\n ...(prev.youtubeAttachments || []),\n youtubeUrl.trim(),\n ],\n }));\n } catch (error) {\n if (error instanceof ZodError) {\n setErrorMessage(error.errors[0].message);\n }\n } finally {\n setYoutubeUrl('');\n }\n }\n };\n\n const handleRemoveYoutubeUrl = (urlToRemove: string) => {\n setFormData((prev) => ({\n ...prev,\n youtubeAttachments: (prev.youtubeAttachments || []).filter(\n (url) => url !== urlToRemove\n ),\n }));\n };\n\n return (\n <div className=\"space-y-6 font-tertiary\">\n <div>\n <SectionHeader\n title=\"Upload your CAD files and Additional files\"\n description=\"Select relevant documents to complete your upload\"\n />\n <DropZone onDrop={handleFileChange}>\n <Upload className=\"mx-auto h-12 w-12 text-muted-foreground\" />\n <div className=\"mt-4\">\n <p className=\"text-sm text-muted-foreground\">\n Select a file or drag and drop here\n </p>\n <p className=\"text-xs text-muted-foreground mt-1\">\n Images, Vectors, Documents\n </p>\n <p className=\"text-xs text-muted-foreground mt-1\">\n Make sure select your display image first\n </p>\n </div>\n <Input\n type=\"file\"\n className=\"hidden\"\n onChange={handleFileChange}\n accept={allowedMediaExtensions.join(',')}\n id=\"file-upload\"\n multiple\n />\n <Button\n variant=\"outline\"\n className=\"mt-4 border-gradient border-2\"\n onClick={() => document.getElementById('file-upload')?.click()}\n >\n Select file\n </Button>\n </DropZone>\n <ErrorMessage error={errors.mediaFiles} />\n </div>\n\n <div className=\"space-y-4\">\n <div className=\"flex gap-2\">\n <Input\n type=\"url\"\n placeholder=\"Enter YouTube URL\"\n value={youtubeUrl}\n onChange={(e) => setYoutubeUrl(e.target.value)}\n className=\"flex-1\"\n />\n <Button\n variant=\"outline\"\n onClick={handleAddYoutubeUrl}\n className=\"border-gradient border-2\"\n >\n Add YouTube URL\n </Button>\n </div>\n <ErrorMessage error={errors.youtubeAttachments || errorMessage} />\n </div>\n\n <div className=\"flex flex-col gap-4 max-h-56 overflow-auto\">\n <div className=\"space-y-4\">\n {formData.youtubeAttachments.length > 0 &&\n formData.youtubeAttachments.map((url) => (\n <div\n className=\"flex items-center gap-2 py-[10px] px-[19px]\"\n key={url}\n >\n <Youtube className=\"text-[#FF0000]\" />\n <div className=\"flex-1 truncate\">{url}</div>\n <Button\n variant=\"ghost\"\n className=\"rounded-full cursor-pointer\"\n onClick={() => handleRemoveYoutubeUrl(url)}\n >\n <X className=\"h-3 w-3\" />\n </Button>\n </div>\n ))}\n {formData.mediaFiles &&\n formData.mediaFiles.length > 0 &&\n formData.mediaFiles.map((file) => {\n return (\n <div\n className=\"flex items-center gap-2 py-[10px] px-[19px]\"\n key={`${file.name}-${file.size}`}\n >\n <FileImage className=\"text-[#0F91D2]\" />\n <div className=\"flex-1 truncate\">{file.name}</div>\n <Button\n variant=\"ghost\"\n className=\"rounded-full cursor-pointer\"\n onClick={() => handleRemoveFile(file)}\n >\n <X className=\"h-3 w-3\" />\n </Button>\n </div>\n );\n })}\n </div>\n </div>\n </div>\n );\n}\n\nexport default MediaUpload;\n","function PostUploadSuccess() {\n return (\n <svg\n width=\"253\"\n height=\"254\"\n viewBox=\"0 0 253 254\"\n fill=\"none\"\n xmlns=\"http://www.w3.org/2000/svg\"\n >\n <path\n d=\"M92.9838 169.257C92.8242 169.789 92.7976 169.829 92.2523 169.816C86.786 169.696 85.4959 170.108 85.2432 169.882C85.8018 169.43 90.8425 169.151 92.7577 168.991C92.9971 168.964 93.0636 168.991 92.9838 169.257Z\"\n fill=\"#FFF59E\"\n />\n <path\n d=\"M81.5986 199.753C81.5986 199.487 107.148 193.102 108.199 194.659C109.106 195.925 109.496 197.49 109.289 199.034C109.01 200.205 110.739 201.122 111.47 201.934C112.202 202.745 112.016 204.301 111.83 205.764C111.643 207.227 112.8 209.754 113.519 211.31C113.519 211.31 116.285 218.279 117.003 220.54C117.721 222.801 118.333 229.172 121.113 250.199C121.113 250.199 111.191 250.199 107.959 249.707C104.727 249.215 97.0133 250.598 95.9892 249.441C94.9651 248.284 93.9543 242.871 92.9169 240.876C91.8795 238.881 89.8845 231.646 89.1131 230.875C88.3417 230.103 86.7856 229.318 87.0516 227.39C87.3176 225.461 88.0757 223.4 87.0516 222.602C86.0275 221.804 83.434 220.288 83.434 220.288C82.7916 218.593 82.5503 216.772 82.7291 214.968C82.7291 214.968 89.1929 212.72 87.3708 206.509C87.2112 206.536 82.0508 203.423 81.5986 199.753Z\"\n fill=\"#FFDAB2\"\n />\n <path\n d=\"M113.571 69.4242C113.571 69.4242 115.566 72.4567 115.433 74.6112C114.997 77.8566 114.344 81.0691 113.478 84.2271C112.893 86.4083 112.241 89.2146 113.013 90.7441C114.167 92.5438 115.223 94.4041 116.178 96.3168C116.803 98.0192 117.229 102.967 116.471 104.962C115.713 106.957 113.212 109.59 112.481 110.668C111.749 111.745 110.526 114.192 111.696 115.748C112.866 117.304 113.837 117.81 114.822 117.451C115.806 117.091 114.622 119.339 112.241 119.831C112.241 119.831 111.563 121.281 114.755 120.975C114.755 120.975 114.981 123.835 109.834 122.305C109.953 123.219 110.353 124.075 110.978 124.752C112.067 126.271 112.824 128.002 113.199 129.833C113.074 131.42 112.621 132.964 111.869 134.368C111.098 135.964 110.153 137.467 110.539 138.278C110.925 139.09 111.55 140.566 112.042 140.792C112.534 141.018 108.225 141.843 107.799 140.952C107.374 140.061 106.123 136.177 104.275 130.977C104.275 130.977 99.8458 131.402 98.2498 127.519C96.6538 123.635 96.3213 125.923 96.0021 126.641C95.6829 127.359 95.0578 129.301 96.4809 130.165C97.904 131.03 98.7951 131.376 98.968 133.038C99.1409 134.701 99.2606 136.39 97.8242 137.627C96.3878 138.864 94.2997 141.218 94.5657 142.747C94.6302 143.766 95.0348 144.735 95.7148 145.497C96.3948 146.259 97.3109 146.77 98.3163 146.95C98.3163 146.95 97.372 149.69 92.6106 147.469C92.6106 147.469 92.451 144.928 91.2806 144.117C90.1102 143.306 86.2266 142.933 86.0936 142.933C85.9606 142.933 81.4386 128.503 79.8027 126.082C78.6722 124.393 75.6664 120.762 73.8443 119.858C72.0222 118.953 68.2051 116.719 68.2051 116.719L69.043 114.671C69.4665 114.457 69.8713 114.208 70.2533 113.926C70.4526 113.137 70.4062 112.307 70.1203 111.545C69.7442 110.716 69.3224 109.908 68.8568 109.125C70.0139 105.44 70.9378 101.687 71.6232 97.8862C72.1719 97.9663 72.7311 97.934 73.2669 97.7916C73.8028 97.6491 74.3042 97.3993 74.7406 97.0573C75.1771 96.7153 75.5396 96.2883 75.8062 95.8021C76.0728 95.3159 76.2379 94.7806 76.2915 94.2287C76.4109 93.4743 76.3422 92.7021 76.0917 91.9806C75.8411 91.2591 75.4163 90.6105 74.8551 90.0924C74.8551 90.0924 79.151 85.065 78.8451 82.4981C78.5392 79.9312 74.8551 78.9337 74.8551 78.9337C74.8551 78.9337 75.1743 73.534 74.6955 72.1907C74.041 70.8404 73.713 69.3552 73.7379 67.8548C74.0392 66.5992 74.4578 65.3747 74.9881 64.1973C75.0812 64.0111 78.2466 59.8084 79.7096 59.0503C81.1726 58.2922 87.8891 56.3903 90.8284 58.5582C90.8284 58.5582 91.3205 58.0793 91.9323 57.5207C92.4574 57.1378 93.0727 56.8973 93.7183 56.8227C94.3639 56.7481 95.0178 56.842 95.6164 57.0951C97.1193 57.7069 99.1675 56.5366 101.548 57.3612C103.385 57.9596 104.91 59.2601 105.791 60.9788C106.349 62.1226 107.812 61.697 108.89 62.3088C109.875 62.8126 110.706 63.5726 111.296 64.5087C111.886 65.4449 112.212 66.5227 112.241 67.6288L113.571 69.4242Z\"\n fill=\"#FBA33A\"\n />\n <path\n d=\"M181.535 194.711C181.691 196.478 182.198 198.196 183.025 199.765C184.235 201.694 186.602 206.415 186.602 206.415C186.602 206.415 184.115 216.111 182.36 223.412C180.334 231.822 178.903 240.364 178.077 248.975C178.077 248.975 172.677 250.106 171.972 248.882C171.267 247.658 169.525 242.95 169.006 241.647C168.488 240.343 162.982 228.347 162.982 228.347L157.928 229.996C158.26 239.519 158.18 237.856 159.936 249.188C159.936 249.188 154.443 251.116 151.038 249.973C147.633 248.829 138.47 249.454 135.158 249.8C131.846 250.145 121.552 251.369 121.02 250.159C121.02 250.159 119.451 240.849 119.451 239.426C119.451 238.003 117.801 229.743 117.801 228.52C117.48 225.283 116.924 222.074 116.139 218.917C115.527 216.909 113.878 212.639 113.878 212.121C113.878 211.602 121.286 201.215 128.88 200.257C136.475 199.3 147.194 197.464 150.692 196.586C154.19 195.709 161.505 192.743 161.505 192.743L181.535 194.711Z\"\n fill=\"#E3B27D\"\n />\n <path\n d=\"M177.824 249.493C177.824 249.493 178.689 243.681 178.835 241.513C178.981 239.345 181.375 228.586 181.734 225.979C182.094 223.372 184.394 213.783 184.714 211.961C185.169 210.098 185.881 208.308 186.828 206.641C187.48 205.55 188.783 204.46 188.717 203.156C188.65 201.853 188.052 200.908 189.143 200.031C190.233 199.153 190.02 198.076 191.803 198.009C214.625 197.091 235.506 193.74 236.304 195.894C237.102 198.049 236.238 198.222 237.182 199.233C238.126 200.243 239.217 200.762 238.632 202.717C238.319 203.716 238.222 204.77 238.348 205.809C238.475 206.847 238.821 207.847 239.363 208.742C240.546 210.719 241.518 212.814 242.263 214.993C242.848 216.802 244.364 224.649 245.388 227.109C246.412 229.57 249.378 240.622 250.11 242.657C251.118 245.816 251.773 249.077 252.065 252.379C251.852 253.031 244.883 252.885 243.141 252.167C241.599 251.437 239.891 251.134 238.193 251.289C237.182 251.581 231.45 251.941 228.537 252.379C225.624 252.818 217.511 252.672 216.487 251.794C215.463 250.916 210.822 252.02 207.417 252.459C204.012 252.898 197.322 251.941 196.524 251.222C195.726 250.504 191.364 251.435 186.217 251.222C181.069 251.01 177.891 251.023 177.824 249.493Z\"\n fill=\"#FF8865\"\n fillOpacity=\"0.91\"\n />\n <path\n d=\"M75.9595 79.9049C76.9969 80.1709 77.2895 80.7295 77.2895 81.5275C77.2895 82.3255 76.9304 83.8683 76.0526 84.1875C74.5763 84.7195 74.4965 86.1692 74.1108 88.5366C74.031 89.0686 73.7384 88.643 73.4458 88.4568C73.2525 88.3551 73.1005 88.1894 73.0156 87.9881C72.9307 87.7869 72.9183 87.5624 72.9803 87.3529C73.1266 86.7012 73.1 86.0229 73.2064 85.3446C73.6985 82.5915 74.9753 84.2274 75.4275 80.7694C75.5206 80.0911 75.3078 79.732 75.9595 79.9049Z\"\n fill=\"white\"\n />\n <path\n d=\"M63.2312 81.3436C64.4149 81.7825 64.5612 81.9288 64.3351 83.3386C64.3172 83.9056 64.1787 84.4621 63.9287 84.9713C63.6787 85.4804 63.323 85.9304 62.8854 86.2912C61.5554 87.2355 61.715 86.8099 61.3958 90.4674C61.3958 90.8797 60.0658 90.1881 59.9328 90.1216C59.7998 90.0551 59.8663 89.9088 59.7998 88.9778C60.2387 81.982 62.0342 88.0734 62.7125 81.6894C62.7657 81.2106 62.7923 81.184 63.2312 81.3436Z\"\n fill=\"white\"\n />\n <path\n d=\"M66.8491 101.958C65.6697 103.189 64.3584 104.286 62.9389 105.23C61.3163 106.254 60.4651 104.365 59.7469 102.57C57.6588 97.3162 57.0204 100.721 66.8491 101.958Z\"\n fill=\"white\"\n />\n <path\n d=\"M246.998 71.1433C247.337 71.4855 247.571 71.9188 247.67 72.3907C247.769 72.8627 247.73 73.3532 247.556 73.8033C247.344 75.0402 246.333 75.2131 245.282 75.5589C243.952 75.9712 244.072 78.2189 245.854 78.5913C246.519 78.711 246.665 78.8839 246.745 80.0277C246.825 81.1715 246.213 80.5996 244.936 81.2114C243.659 81.8232 244.231 83.3128 245.402 84.0044C246.253 84.5098 243.992 85.3344 246 87.1033C246.851 87.9013 244.843 88.7259 243.806 89.085C243.513 89.1914 243.221 88.8722 243.074 88.5929C241.904 86.3452 240.162 88.154 241.026 90.3086C241.398 91.2263 241.119 91.3061 240.481 91.7716C240.063 92.0276 239.596 92.1931 239.111 92.2573C238.625 92.3214 238.131 92.2828 237.661 92.144C236.916 91.9578 237.502 90.2421 236.983 89.2047C236.704 88.6328 236.265 88.3535 235.014 88.5397C233.764 88.7259 233.857 90.149 233.791 91.5455C233.791 93.1947 231.703 92.6893 231.676 92.8755C229.761 92.6893 229.016 92.7292 229.548 90.2155C229.894 88.6594 228.883 87.9412 229.269 87.0634C229.711 86.2839 229.936 85.3998 229.92 84.5037C229.903 83.6075 229.646 82.7323 229.176 81.9695C228.87 81.504 228.963 80.9853 228.923 80.2006C228.83 78.6578 228.577 76.6495 226.396 75.7185C225.665 75.4126 224.96 75.3062 224.8 74.5215C224.732 73.8608 224.464 73.2367 224.031 72.7328C223.598 72.2288 223.022 71.8691 222.379 71.7019C219.852 70.9305 221.315 72.4733 218.749 65.7834C218.456 65.012 219.028 64.4534 218.629 63.0037C218.23 61.554 219.733 61.155 220.398 60.7161C221.289 60.1575 222.007 59.1201 220.65 57.9497C220.158 57.5241 219.733 56.6197 220.903 55.6488C221.302 55.3163 221.701 55.3562 221.688 55.6488C221.688 57.0453 221.688 57.5374 222.872 57.83C224.055 58.1226 224.135 58.2822 224.388 58.6945C224.773 59.3196 225.319 59.027 225.718 58.6147C228.564 55.6754 226.21 55.9547 227.394 54.3055C228.724 52.377 230.466 51.8849 231.224 52.776C231.556 53.1617 231.224 54.0129 230.027 55.835C229.468 56.7128 229.428 57.3379 230.492 57.5108C232.328 57.8034 232.501 57.5906 232.514 58.4684C232.527 59.3462 232.7 60.0644 233.392 60.1442C234.655 60.2772 235.493 58.8142 236.052 57.6837C236.504 56.8591 238.273 56.1675 238.579 57.963C238.577 58.4132 238.475 58.8575 238.282 59.2643C238.089 59.6711 237.809 60.0305 237.462 60.3171C236.531 61.0619 236.983 62.1791 238.3 62.2722C238.502 62.3456 238.687 62.4587 238.845 62.6049C239.002 62.7511 239.129 62.9274 239.217 63.1234C239.377 63.7884 239.776 63.9081 240.441 63.682C241.106 63.4559 241.425 61.6604 242.223 61.8732C242.742 62.0062 243.354 62.352 243.367 62.8175C243.318 63.4976 243.113 64.1574 242.768 64.746C242.223 65.7568 243.167 66.076 244.098 66.076C245.029 66.076 245.801 65.3711 245.934 66.7543C246.04 67.7651 245.508 68.5099 244.125 68.4035C243.673 68.4035 243.088 68.2971 242.609 68.2971C241.279 68.2971 241.345 71.263 243.314 71.662C245.282 72.061 246.333 70.3985 246.998 71.1433Z\"\n fill=\"#585858\"\n />\n <path\n d=\"M242.702 15.7478C242.787 16.1431 242.777 16.553 242.673 16.9438C242.569 17.3346 242.374 17.695 242.103 17.9955C241.678 18.5142 241.013 19.2457 239.736 20.9082C237.927 23.4352 237.076 23.6746 235.334 26.1085C234.403 27.0661 234.695 26.8666 233.831 25.9622C232.966 25.0578 233.232 25.4169 233.498 24.4992C233.596 23.8825 233.739 23.2736 233.924 22.6771C236.757 19.3388 239.616 18.0487 241.744 15.6015C242.21 15.1227 242.556 15.0296 242.702 15.7478Z\"\n fill=\"#FFC6A6\"\n />\n <path\n d=\"M240.001 128.134C244.63 136.473 237.341 159.921 236.118 166.997C235.912 168.541 235.601 170.07 235.187 171.572C234.724 173.47 234.399 175.399 234.216 177.344C233.857 179.206 234.721 181.68 235.134 184.686C235.413 186.827 233.578 187.199 236.996 192.932C237.701 194.102 238.512 195.272 237.621 196.496C237.169 197.108 236.716 197.999 235.972 197.48C234.947 196.762 234.642 196.496 234.322 196.469C234.221 196.45 234.116 196.461 234.021 196.503C233.926 196.545 233.847 196.615 233.793 196.703C233.739 196.792 233.714 196.895 233.721 196.998C233.728 197.101 233.766 197.2 233.83 197.281C234.256 197.72 234.655 197.959 234.269 198.172C233.037 198.891 231.597 199.167 230.186 198.957C229.348 198.957 231.795 196.629 230.519 196.084C229.787 195.765 229.548 197.174 228.776 198.252C226.116 201.869 224.228 199.169 221.993 200.034C220.996 200.42 218.589 200.805 219.214 200.1C219.639 199.622 220.544 199.063 219.905 198.478C219.466 198.092 218.575 199.076 218.296 199.342C217.471 200.406 216.301 200.499 214.918 200.672C213.202 200.938 212.457 197.919 211.606 198.518C211.22 198.77 211.274 199.036 212.391 200.579C212.63 200.912 209.731 202.162 206.619 201.284C203.506 200.406 205.541 200.1 205.568 199.196C205.578 199.074 205.548 198.952 205.483 198.849C205.417 198.746 205.319 198.667 205.204 198.625C205.09 198.582 204.964 198.579 204.847 198.615C204.73 198.651 204.628 198.724 204.557 198.824C203.413 200.047 204.357 199.728 201.764 201.151C201.072 201.537 200.7 201.151 198.04 200.646C196.989 200.446 196.085 199.316 194.994 198.132C194.436 197.52 193.811 198.132 194.17 198.691C194.782 199.648 195.287 199.781 194.795 199.888C192.973 200.26 192.667 199.888 190.725 199.063C190.433 198.915 190.174 198.708 189.967 198.455C189.76 198.201 189.608 197.907 189.521 197.591C189.435 197.275 189.416 196.945 189.465 196.621C189.514 196.297 189.631 195.987 189.807 195.711C191.629 192.599 191.257 192.386 191.297 191.814C191.443 189.154 189.794 186.401 190.299 182.691C190.299 182.691 190.419 178.701 190.406 178.102C190.299 174.431 189.076 173.314 188.823 169.989C188.505 167.785 188.305 165.565 188.225 163.339C188.876 163.672 203.413 181.108 203.919 181.64C208.254 186.308 212.697 193.038 217.405 192.905C217.963 192.905 220.743 193.198 222.419 191.575C224.095 189.952 226.768 190.179 230.545 175.296C232.234 168.646 240.095 145.637 240.228 135.303C240.291 132.912 240.176 130.52 239.882 128.147C239.897 128.131 239.917 128.121 239.939 128.119C239.961 128.116 239.983 128.122 240.001 128.134Z\"\n fill=\"#FFDAB2\"\n />\n <path\n d=\"M238.22 33.0229C238.845 33.1692 239.55 35.4036 237.9 37.2922C236.251 39.1808 235.905 39.8458 234.416 40.5241C233.414 40.9793 232.389 41.3789 231.343 41.7211C231.137 41.77 230.92 41.7448 230.731 41.65C230.541 41.5552 230.391 41.3968 230.306 41.2024C230.218 41.0374 230.187 40.8485 230.215 40.6638C230.244 40.4792 230.332 40.3089 230.466 40.1783C232.048 38.9946 232.713 38.9414 233.126 38.2498C233.126 38.1035 233.525 37.4917 233.87 37.372C236.052 36.5607 238.14 33.0229 238.22 33.0229Z\"\n fill=\"#FFC6A6\"\n />\n <path\n d=\"M233.392 103.928C234.868 104.034 238.007 104.287 237.808 105.75C237.568 107.572 235.547 113.903 234.403 113.544C233.259 113.185 233.325 112.852 232.168 112.826C229.575 112.746 231.078 111.815 232.514 107.878C232.788 106.756 232.847 105.591 232.687 104.447C232.66 103.861 232.647 103.875 233.392 103.928Z\"\n fill=\"#92CAD9\"\n />\n <path\n d=\"M237.687 13.3937C237.927 14.5641 236.105 17.0512 234.442 18.8334C233.365 19.9905 232.567 20.9348 232.008 21.4934C230.226 23.4751 224.693 24.9913 222.366 30.431C221.915 31.3425 221.554 32.2957 221.289 33.2772C220.624 35.8707 219.958 35.5914 220.038 36.8948C220.038 37.4135 220.823 37.0943 221.076 36.6421C222.406 34.3944 221.967 33.0245 223.443 30.3911C225.451 26.8134 223.603 29.5 227.433 25.7228C227.433 25.7228 230.918 23.4352 231.529 23.0628C232.141 22.6904 232.421 22.5574 232.54 22.983C232.599 23.4093 232.549 23.8435 232.395 24.2456C232.242 24.6476 231.99 25.0047 231.663 25.2839C229.84 27.505 225.904 28.6222 226.768 32.5989C227.22 34.6471 226.768 38.1317 224.973 39.4484C224.905 39.5051 224.85 39.5746 224.81 39.6528C224.769 39.731 224.745 39.8163 224.737 39.904C224.73 39.9917 224.74 40.08 224.766 40.1638C224.793 40.2477 224.836 40.3254 224.893 40.3927C224.95 40.4599 225.019 40.5153 225.097 40.5557C225.175 40.5961 225.261 40.6207 225.348 40.6282C225.436 40.6356 225.524 40.6256 225.608 40.5989C225.692 40.5722 225.77 40.5293 225.837 40.4725C228.204 38.5174 227.925 36.8549 228.218 33.5831C227.938 31.8541 227.832 31.7743 228.071 30.9896C228.51 29.5798 230.466 27.7045 230.891 27.9971C232.474 29.0478 232.966 29.6729 233.365 29.2074C234.216 28.2764 231.41 27.3188 231.915 26.8932C232.833 26.1218 232.58 26.0819 233.245 26.9996C233.751 27.6247 233.751 28.3296 234.655 28.0636C234.974 27.9439 235.985 27.2523 236.53 27.6779C238.339 29.3271 238.046 28.5956 236.889 32.2265C235.985 35.0594 231.569 37.214 231.13 37.0677C230.856 36.9012 230.642 36.6513 230.52 36.3546C230.398 36.0578 230.374 35.7298 230.452 35.4185C231.889 33.357 233.87 33.091 234.349 31.5615C234.429 31.2822 235.426 30.3379 234.828 29.9123C234.469 29.6596 233.83 30.0985 233.684 30.5374C232.939 32.9713 228.138 33.8092 229.694 36.9347C229.84 37.2539 230.293 38.4642 231.543 38.012C232.141 37.7992 230.878 38.5972 229.8 39.475C229.592 39.6252 229.42 39.8216 229.299 40.0488C229.178 40.276 229.112 40.528 229.104 40.7853C229.096 41.0425 229.148 41.2981 229.255 41.5321C229.362 41.7662 229.521 41.9725 229.721 42.135C230.133 42.5606 228.258 43.1591 227.659 43.1724C225.97 43.1724 220.211 50.8066 215.45 55.967C215.064 56.3926 214.931 56.6719 214.599 55.6744C214.266 54.6769 211.34 47.1358 210.489 44.6354C210.143 43.6512 210.795 44.263 213.375 41.8956C215.955 39.5282 217.777 38.0785 218.841 36.2431C219.666 34.8333 222.073 26.9331 225.199 24.7652C227.779 22.9963 236.105 13.2341 237.169 12.8883C237.421 12.8085 237.648 13.2341 237.687 13.3937Z\"\n fill=\"#FFC6A6\"\n />\n <path\n d=\"M236.012 123.503C245.322 130.353 230.905 168.284 229.362 174.721C226.702 186.08 221.874 196.48 212.577 189.498C211.513 188.7 210.689 187.662 205.475 181.704C184.315 157.471 188.877 158.362 176.348 158.442C171.028 158.442 172.265 158.775 170.004 157.711C166.995 156.581 164.211 154.924 161.784 152.816C161.465 152.564 160.853 152.218 161 151.872C161.146 151.526 162.33 151.672 162.769 151.872C163.534 152.102 164.254 152.462 164.897 152.936C167.342 154.806 170.187 156.086 173.209 156.673C173.741 156.793 173.555 157.391 174.326 156.288C174.752 155.689 174.739 155.569 175.045 155.663C175.35 155.756 175.138 156.128 175.138 156.793C175.155 156.885 175.203 156.968 175.275 157.027C175.346 157.087 175.437 157.119 175.53 157.119C175.623 157.119 175.714 157.087 175.785 157.027C175.857 156.968 175.905 156.885 175.922 156.793C175.975 156.515 176.041 156.24 176.122 155.968C177.11 156.425 178.133 156.803 179.181 157.099C179.593 157.179 179.979 156.647 179.447 156.381C176.919 155.176 174.232 154.338 171.467 153.894C171.369 153.867 171.279 153.82 171.2 153.756C171.122 153.692 171.059 153.612 171.013 153.522C170.968 153.431 170.943 153.333 170.938 153.232C170.934 153.131 170.951 153.03 170.988 152.936C171.068 152.723 171.148 152.404 172.132 152.471C172.797 152.471 173.715 152.564 174.047 152.604C182.905 153.747 180.803 152.803 185.538 152.71C186.274 152.754 187.006 152.839 187.733 152.963C188.158 152.963 188.265 152.683 187.999 152.484C186.775 151.579 185.405 151.752 181.468 152.191C179.754 152.349 178.026 152.205 176.361 151.766C175.098 151.606 173.502 151.766 174.446 151.047C174.832 150.781 174.779 150.356 174.34 150.13C173.901 149.904 173.848 149.678 174.34 149.345C175.058 148.773 174.712 148.773 175.537 149.159C178.086 150.29 180.863 150.818 183.65 150.702C185.177 150.475 186.736 150.707 188.132 151.367C190.619 153.189 189.462 152.364 192.374 156.062C194.17 158.323 201.272 164.733 206.512 168.949C208.827 170.811 213.641 174.535 215.237 176.012C216.088 176.783 216.447 176.836 216.886 176.371C217.578 175.639 213.202 173.165 213.402 172.381C213.96 170.013 221.036 143.666 223.377 135.819C224.405 131.581 226.17 127.556 228.59 123.929C229.18 123.103 230.027 122.495 230.998 122.2C233.817 122.452 234.482 122.386 236.012 123.503Z\"\n fill=\"#D6AD9E\"\n />\n <path\n d=\"M226.05 120.179C227.418 120.289 228.748 120.693 229.946 121.363C224.972 126.39 224.892 123.092 212.351 171.504C212.005 172.834 196.391 159.028 192.72 154.613C191.762 153.134 190.541 151.844 189.115 150.809C188.677 150.41 188.756 150.33 188.796 150.144C188.916 149.652 195.446 127.255 196.417 124.781C197.095 123.132 197.401 123.185 199.875 122.241H200.234C199.423 124.502 199.888 120.352 197.468 132.122C196.63 136.192 195.792 137.442 195.819 139.477C195.819 143.028 199.902 144.385 203.44 144.624C213.122 143.747 211.646 143.693 219.253 129.25C223.961 120.352 224.454 120.046 226.05 120.179Z\"\n fill=\"#FFDAB2\"\n />\n <path\n d=\"M211.966 103.7C211.407 104.352 210.981 102.809 209.306 103.128C207.976 103.394 207.976 103.647 207.683 103.128C207.39 102.609 207.204 102.37 206.872 102.516C206.273 102.769 206.552 103.447 206.978 104.179C207.404 104.91 206.419 106.586 208.122 107.623C208.587 107.869 209.115 107.971 209.638 107.916C210.161 107.862 210.656 107.653 211.061 107.317C212.391 106.613 211.753 105.562 212.032 105.163C212.139 105.028 212.282 104.927 212.444 104.87C212.843 104.697 212.843 104.671 212.99 105.043C213.588 106.679 215.064 106.041 214.985 106.879C214.665 110.15 218.23 115.949 217.512 118.849C216.261 119.088 215.344 119.035 215.025 120.684C214.945 121.096 213.801 120.258 212.644 121.655C212.032 122.386 212.551 122.985 212.099 122.772C210.769 122.027 209.439 123.477 209.439 123.942C209.439 124.408 209.106 123.942 209.04 123.942C206.965 122.519 206.38 125.06 206.034 124.634C205.92 124.45 205.768 124.293 205.589 124.173C205.409 124.053 205.206 123.974 204.992 123.94C204.779 123.906 204.561 123.918 204.353 123.976C204.144 124.034 203.951 124.136 203.786 124.275C203.321 124.634 203.4 124.142 202.616 123.783C201.286 123.171 201.006 115.364 196.298 114.898C191.59 114.433 187.467 116.095 185.193 113.316C181.642 108.98 185.592 98.8985 182.346 96.5311C177.731 93.1795 183.384 95.3208 184.847 91.118C186.31 86.9152 185.073 81.3558 189.156 76.488C190.295 75.0256 191.638 73.7355 193.146 72.6576C193.864 72.232 193.598 73.2162 195.021 73.5487C195.439 73.6873 195.848 73.8517 196.245 74.0408C195.341 74.8654 194.769 75.3043 194.609 76.0491C194.356 77.2062 195.234 77.6185 195.62 77.02C196.006 76.4215 195.287 76.1954 197.189 74.9851C197.464 74.8419 197.749 74.7175 198.04 74.6127C198.945 74.6127 196.112 74.8521 204.81 76.222C205.316 76.3018 203.4 77.0466 201.738 78.2569C200.541 79.1347 200.634 80.7706 201.498 80.478C202.15 80.2519 201.565 79.4007 204.158 78.0973C212.311 74.1073 213.269 77.3658 220.118 72.6842C220.318 72.5512 220.611 72.3517 220.85 72.4448C222.446 73.03 222.925 72.8571 223.576 74.9851C224.148 76.7939 225.492 76.4747 226.529 77.2461C227.146 77.8391 227.549 78.6205 227.673 79.4672C228.098 81.2361 227.181 81.4622 228.072 82.5129C228.963 83.5636 228.67 85.7049 228.072 86.9817C227.473 88.2585 229.921 89.4555 226.409 93.1928C224.454 95.2543 226.13 97.1828 223.404 99.0581C220.158 101.319 219.985 101.412 220.331 102.596C220.677 103.78 219.267 104.445 218.416 104.897C216.74 105.828 216.448 103.953 215.078 104.897C213.921 105.655 213.961 103.913 213.947 103.886C213.681 103.261 215.729 102.104 216.328 100.415C216.594 99.6699 216.94 100.042 217.272 99.896C220.172 98.566 220.331 98.566 220.318 98.1005C220.318 96.4912 216.966 99.2975 217.139 98.4463C217.417 97.7037 217.515 96.9062 217.428 96.1184C217.34 95.3305 217.068 94.5744 216.634 93.911C216.488 93.7115 216.474 93.5918 216.754 93.5652C219.492 93.0818 222.085 91.9812 224.335 90.3466C224.707 90.0141 224.428 88.8969 223.39 89.6683C221.861 90.7988 216.74 93.0997 214.692 92.2352C212.644 91.3707 210.13 91.4904 208.76 93.5652C208.494 93.9775 209.026 95.0947 209.718 94.0706C210.915 92.2884 212.697 92.7406 214.652 93.6051C215.184 93.8312 215.424 94.3765 215.743 94.8021C217.153 96.6109 214.892 100.561 214.346 101.133C211.753 103.966 212.325 103.274 211.966 103.7ZM225.332 83.2577C225.464 83.1907 225.565 83.0739 225.611 82.933C225.657 82.792 225.645 82.6386 225.578 82.5063C225.511 82.374 225.394 82.2738 225.253 82.2276C225.112 82.1815 224.959 82.1932 224.827 82.2602C223.257 82.9252 220.012 85.7315 207.896 87.128C207.005 87.2344 206.858 87.7132 207.178 88.059C207.829 88.7506 218.882 86.995 225.332 83.2577ZM219.746 78.3367C219.746 76.8072 218.709 78.2037 213.096 79.4672C211.39 79.8092 209.717 80.2987 208.095 80.9302C206.765 81.3425 205.768 81.2494 204.571 82.6326C204.385 82.8321 204.491 83.0981 204.651 83.2976C204.996 83.7365 204.557 82.9917 211.739 81.01C216.833 79.6135 218.536 79.547 219.746 78.3367ZM214.426 96.7705C214.586 97.2892 215.889 96.9966 215.171 95.7065C214.838 95.0947 213.641 94.7356 212.976 94.5095C212.206 94.6196 211.49 94.969 210.929 95.5084C210.368 96.0478 209.991 96.7499 209.851 97.5153C209.744 99.5103 212.019 99.8295 209.851 100.707C209.332 100.92 209.665 101.811 210.17 101.745C211.5 101.585 211.766 101.226 211.966 100.681C212.617 98.832 210.449 98.5394 211.314 97.0631C211.686 96.4513 212.404 95.5602 213.069 95.8395C213.734 96.1188 214.173 96.0922 214.386 96.7705H214.426ZM197.256 103.208C197.588 103.78 198.2 103.434 198.08 102.769C197.774 101.04 195.553 99.7364 195.274 100.455C194.862 101.505 196.378 101.213 195.367 101.545C195.021 101.665 192.92 102.955 187.387 102.17C186.868 102.17 186.416 101.931 186.19 102.17C186.125 102.265 186.098 102.381 186.116 102.495C186.133 102.608 186.193 102.711 186.283 102.782C186.403 102.889 186.523 102.782 186.563 102.995C187.188 106.147 184.86 112.598 191.031 108.501C197.442 104.232 196.511 101.958 197.256 103.208ZM195.926 84.8271C196.657 85.1995 197.256 84.4547 196.71 83.7764C195.035 81.9011 188.651 80.7972 188.464 84.335C188.464 84.8138 188.558 85.1596 189.036 85.0266C190.34 84.6542 189.834 81.7814 195.912 84.8271H195.926ZM194.33 93.1928C194.995 92.581 193 90.7722 190.499 90.6126C189.316 90.6126 187.188 91.9426 188.079 92.7672C188.531 93.2061 189.409 91.9293 190.22 91.9027C193.625 91.8362 193.306 94.1637 194.33 93.1928Z\"\n fill=\"#D6AD9E\"\n />\n <path\n d=\"M220.597 119.753C224.175 121.083 223.922 118.423 216.913 131.27C216.767 131.536 215.078 135.26 214.253 136.657C210.729 143.001 209.558 142.722 205.302 143.307C202.642 143.307 201.765 143.44 200.076 142.708C195.514 140.767 196.923 139.25 198.081 134.436C198.892 131.018 200.262 122.186 200.9 123.41C201.312 124.208 199.477 124.913 200.82 126.536C201.751 127.679 202.789 126.536 203.853 127.068C205.768 127.932 205.183 126.283 207.204 126.815C209.226 127.347 208.933 125.565 209.864 125.91C211.846 126.589 212.883 125.299 212.857 124.181C212.857 123.915 212.857 124.022 213.043 124.075C213.324 124.219 213.636 124.291 213.951 124.284C214.267 124.278 214.576 124.193 214.85 124.037C215.124 123.882 215.356 123.66 215.523 123.393C215.691 123.125 215.789 122.821 215.809 122.506C215.903 121.867 216.594 122.812 217.565 122.293C219.214 121.415 218.097 120.152 219.055 120.138C220.358 120.191 220.172 119.606 220.597 119.753Z\"\n fill=\"#D6AD9E\"\n />\n <path\n d=\"M218.39 118.516C218.403 118.362 218.46 118.215 218.554 118.093C218.648 117.97 218.775 117.877 218.92 117.824C219.065 117.771 219.222 117.76 219.373 117.794C219.524 117.827 219.662 117.903 219.772 118.012C219.881 118.121 219.957 118.26 219.99 118.41C220.024 118.561 220.013 118.719 219.96 118.864C219.907 119.009 219.814 119.136 219.691 119.23C219.568 119.324 219.421 119.381 219.268 119.394C219.15 119.404 219.031 119.388 218.92 119.348C218.809 119.307 218.708 119.243 218.624 119.159C218.541 119.076 218.476 118.975 218.436 118.864C218.395 118.753 218.38 118.634 218.39 118.516Z\"\n fill=\"white\"\n />\n <path\n d=\"M219.386 71.1418C219.506 71.4743 219.812 71.7935 219.267 72.2324C218.405 72.7241 217.517 73.1681 216.607 73.5624C215.649 74.0545 213.734 70.9024 214.958 67.9498C215.427 66.9605 216.226 66.1656 217.219 65.7021C217.524 66.0479 217.325 65.5292 219.386 71.1418Z\"\n fill=\"white\"\n />\n <path\n d=\"M216.94 119.712C218.522 119.712 217.951 121.8 217.033 121.734C214.905 121.574 216.009 119.712 216.94 119.712Z\"\n fill=\"white\"\n />\n <path\n d=\"M216.767 64.6656C217.166 65.4636 216.089 64.8385 214.479 67.3256C213.975 68.2453 213.736 69.2873 213.79 70.3349C213.844 71.3825 214.189 72.3944 214.785 73.2574C215.237 73.8426 215.184 74.215 214.785 74.3081C213.015 74.8383 211.18 75.116 209.332 75.1327C203.866 75.4519 205.183 75.3721 200.993 74.4943C200.155 74.3214 201.432 73.816 202.03 71.555C202.948 68.0837 200.541 63.974 197.096 64.5459C196.564 64.6257 196.405 64.7321 196.538 64.2267C198.041 58.9067 197.349 60.6357 199.583 60.4096C203.906 59.9707 205.09 53.4271 201.592 51.6981C200.262 51.0331 199.929 52.4429 203.494 41.7497C204.079 39.9808 204.212 40.0473 204.69 40.2601C204.889 40.3883 205.12 40.4566 205.355 40.4566C205.591 40.4566 205.822 40.3883 206.02 40.2601C206.353 39.9276 206.752 40.2601 206.832 40.2601C207.244 40.1936 207.51 39.9808 207.683 40.2601C208.017 40.8651 208.263 41.5144 208.414 42.1886C208.587 42.8004 206.632 42.7073 205.754 44.556C204.318 47.6549 205.755 50.6474 207.617 51.3523C208.368 51.5857 209.145 51.7286 209.931 51.7779C211.021 51.9508 211.46 50.7804 211.713 51.4188C214.932 59.1727 215.344 60.8352 216.767 64.6656ZM212.365 58.4146C212.419 57.868 212.298 57.3182 212.019 56.8452C211.088 54.9699 210.423 55.2758 209.452 54.8103C206.552 53.4005 203.853 57.9225 205.874 60.8751C207.896 63.8277 212.431 62.9765 212.365 58.4146ZM207.749 72.2732C211.859 72.885 212.897 64.9449 206.978 66.3015C206.646 66.3813 206.819 66.1552 205.302 67.6315C205.088 68.339 204.976 69.0735 204.97 69.8127C205.148 70.4462 205.505 71.015 205.998 71.4513C206.491 71.8875 207.099 72.1729 207.749 72.2732Z\"\n fill=\"#92CAD9\"\n />\n <path\n d=\"M214.027 121.472C214.705 121.206 215.703 122.429 214.759 123.28C213.349 124.544 212.405 122.097 214.027 121.472Z\"\n fill=\"white\"\n />\n <path\n d=\"M212.072 123.798C212.154 123.985 212.186 124.19 212.165 124.393C212.143 124.596 212.069 124.79 211.949 124.955C211.829 125.12 211.669 125.252 211.483 125.336C211.297 125.42 211.092 125.454 210.889 125.434C208.481 124.862 211.301 122.322 212.072 123.798Z\"\n fill=\"white\"\n />\n <path\n d=\"M211.619 58.5741C211.676 59.0079 211.632 59.4491 211.491 59.8634C211.35 60.2776 211.116 60.6538 210.805 60.9626C210.495 61.2713 210.118 61.5045 209.703 61.6438C209.289 61.7832 208.847 61.825 208.414 61.7661C207.86 61.6351 207.349 61.3649 206.929 60.9811C206.51 60.5973 206.195 60.1127 206.015 59.5731C205.835 59.0335 205.796 58.4569 205.902 57.898C206.007 57.3391 206.254 56.8164 206.618 56.3796C208.36 54.092 211.619 55.9407 211.619 58.5741Z\"\n fill=\"white\"\n />\n <path\n d=\"M211.287 8.63103C212.284 11.9294 210.249 15.7465 209.372 17.6484C209.199 18.0341 207.55 18.0075 205.794 17.3425C205.249 17.143 206.007 16.7307 206.353 16.0125C207.909 12.887 206.539 10.3999 206.02 8.87043C205.501 7.34093 206.18 7.54043 209.93 7.80643C210.821 7.83303 211.008 7.67343 211.287 8.63103Z\"\n fill=\"#F8865C\"\n />\n <path\n d=\"M211.207 49.9406C211.646 51.0445 208.174 50.9381 207.47 50.18C206.432 49.0628 205.913 48.5441 205.967 47.4402C206.046 45.8309 206.086 44.0221 208.055 43.0778C209.225 42.5192 210.808 48.9431 211.207 49.9406Z\"\n fill=\"white\"\n />\n <path\n d=\"M209.983 104.261C211.566 104.593 210.848 107.2 209.305 106.854C209.133 106.823 208.969 106.757 208.822 106.661C208.675 106.566 208.549 106.442 208.45 106.297C208.351 106.153 208.282 105.99 208.246 105.819C208.21 105.647 208.208 105.47 208.241 105.298C208.294 104.633 208.813 104.008 209.983 104.261Z\"\n fill=\"white\"\n />\n <path\n d=\"M205.688 69.162C205.847 65.7838 210.875 66.5685 210.436 69.3482C209.85 73.1121 205.102 71.2767 205.688 69.162Z\"\n fill=\"white\"\n />\n <path\n d=\"M209.079 35.338C209.079 36.3222 210.05 36.0828 209.665 36.9074C208.88 38.5034 207.709 37.865 207.35 38.5965C206.991 39.328 206.699 37.9847 205.675 39.1285C205.543 39.1876 205.4 39.2182 205.256 39.2182C205.111 39.2182 204.968 39.1876 204.837 39.1285C203.64 38.3571 203.44 39.1285 202.749 39.1285C201.246 39.2349 202.456 37.7985 201.658 37.599C200.155 37.2399 201.246 36.5749 201.286 35.8434C201.325 35.1119 200.474 34.9922 200.7 34.2075C200.926 33.4228 202.097 34.3538 202.203 33.2233C202.203 32.5849 202.469 30.9756 203.773 31.6273C204.797 32.146 204.97 31.0953 205.475 31.3214C205.98 31.5475 205.967 32.6514 207.018 31.9598C207.816 31.4278 208.348 31.9598 208.348 32.7312C208.348 33.5026 208.175 33.9149 208.707 34.0612C209.239 34.2075 209.093 34.806 209.079 35.338Z\"\n fill=\"white\"\n />\n <path\n d=\"M207.975 124.342C209.305 124.342 209.079 126.218 207.829 126.191C207.578 126.179 207.341 126.077 207.16 125.903C206.979 125.73 206.867 125.496 206.845 125.247C206.909 124.993 207.054 124.768 207.258 124.604C207.462 124.441 207.714 124.349 207.975 124.342Z\"\n fill=\"white\"\n />\n <path\n d=\"M205.581 125.553C205.581 127.215 203.812 126.471 203.653 125.992C203.493 125.513 204.65 123.744 205.581 125.553Z\"\n fill=\"white\"\n />\n <path\n d=\"M200.54 51.9247C200.886 52.1508 203.081 53.2547 202.921 54.9305C202.855 58.0161 201.458 59.8515 198.319 59.5589C197.88 59.5589 198.412 58.5614 198.439 58.4683C199.796 53.5207 199.955 51.539 200.54 51.9247Z\"\n fill=\"white\"\n />\n <path\n d=\"M201.658 124.421C201.964 124.208 202.855 124.567 202.801 125.392C202.642 127.626 200.221 125.432 201.658 124.421Z\"\n fill=\"white\"\n />\n <path\n d=\"M200.128 66.4618C200.474 67.0071 201.192 66.9007 201.458 69.6937C201.458 72.3537 199.862 74.1625 199.104 73.963C197.457 73.7011 195.887 73.0839 194.503 72.1542C193.984 71.6355 194.675 70.0927 195.354 67.712C195.899 65.7968 195.567 65.9963 196.524 65.3579C197.16 65.0982 197.866 65.0662 198.523 65.2673C199.18 65.4685 199.747 65.8905 200.128 66.4618Z\"\n fill=\"white\"\n />\n <path\n d=\"M198.027 53.6662C198.732 53.0677 198.825 52.8682 198.639 53.5598C197.947 56.2198 197.642 57.0843 195.806 62.6171C194.21 67.4583 193.997 68.6287 193.678 69.174C193.678 69.174 191.75 67.1923 191.018 66.1682C188.943 63.5082 187.414 63.8407 187.999 63.1491C191.776 58.5473 189.169 61.2206 198.027 53.6662Z\"\n fill=\"#FFC6A6\"\n />\n <path\n d=\"M195.287 102.41C195.992 102.091 196.271 102.131 196.152 102.317C194.287 104.911 191.87 107.059 189.076 108.608C188.198 109.033 187.254 109.512 187.32 106.799C187.427 103.155 187.028 103.008 187.746 103.088C192.601 103.62 194.928 102.556 195.287 102.41Z\"\n fill=\"white\"\n />\n <path\n d=\"M193.305 70.3697C193.372 70.6224 193.438 71.4071 193.093 71.5667C190.752 72.644 191.191 73.3356 190.552 72.7371C189.222 71.4071 185.099 67.1245 184.474 68.4146C184.436 68.4782 184.411 68.5488 184.4 68.6222C184.39 68.6956 184.394 68.7704 184.412 68.8422C184.431 68.914 184.464 68.9814 184.508 69.0404C184.553 69.0995 184.61 69.149 184.674 69.186C186.004 69.9707 185.804 70.0106 189.488 73.4288C190.739 74.5991 188.158 73.7878 185.498 80.7836C184.793 82.6456 186.217 81.7014 182.453 78.9882C179.42 76.7804 179.301 75.4902 175.803 73.5085C174.473 72.7371 174.353 72.9632 174.233 73.3888C174.114 73.8144 173.395 74.6257 173.369 74.2001C173.216 73.0673 173.518 71.9201 174.207 71.0082C177.585 68.3482 178.104 69.6781 182.493 73.1627C183.291 73.8011 184.434 73.2425 182.865 71.9258C177.731 67.6432 177.824 68.8003 178.143 68.0289C178.808 66.4063 178.902 65.9941 181.109 65.8079C182.705 65.6616 181.828 63.6798 184.408 63.6798C185.645 63.5335 187.267 64.8369 188.052 65.2758C189.555 66.1137 189.967 67.6698 192.587 69.851C193 70.1835 193.239 70.1835 193.305 70.3697Z\"\n fill=\"#B96185\"\n />\n <path\n d=\"M195.034 125.232L188.318 147.842C187.653 149.704 187.892 150.13 187.32 149.957C184.328 149.052 184.74 151.978 187.32 141.751C188.358 137.8 190.924 126.017 195.034 125.232Z\"\n fill=\"#D6AD9E\"\n />\n <path\n d=\"M187.254 166.248C187.799 175.558 192.002 180.878 186.509 186.81C185.91 187.448 185.911 187.049 185.099 185.852C181.109 179.947 181.295 181.091 179.606 178.351C179.34 177.912 178.928 176.728 178.755 176.516C178.383 176.037 178.662 175.97 179.979 173.856C180.936 172.3 183.397 160.236 183.423 160.05C183.45 159.864 183.423 159.691 183.822 159.771C184.919 160.091 185.91 160.697 186.695 161.527C187.334 162.138 187.014 162.271 187.254 166.248Z\"\n fill=\"#D6AD9E\"\n />\n <path\n d=\"M178.223 177.862C179.26 180.522 187.081 189.552 186.402 190.164C184.5 191.88 174.831 198.477 174.725 198.543C173.905 198.987 172.996 199.241 172.065 199.288C169.405 200.764 169.245 201.15 167.609 202.081C166.971 202.453 166.279 202.64 165.561 202.959C165.229 203.118 165.069 202.959 164.936 202.733C158.047 190.763 164.484 201.709 159.084 191.321C158.273 189.765 157.302 189.459 155.892 186.839C151.703 178.992 152.128 181.705 151.397 177.529C150.798 174.058 149.428 172.369 148.63 169.177C147.034 162.713 147.806 164.695 147.739 157.207C147.739 154.135 146.782 152.113 145.997 149.134C145.786 147.84 145.42 146.576 144.906 145.37C143.949 143.135 144.76 142.364 144.148 138.374C143.829 136.286 142.685 134.703 141.142 132.283C140.132 130.713 140.664 129.769 138.908 128.013C137.988 127.036 137.329 125.842 136.993 124.542C136.009 121.084 136.487 116.017 139.919 110.018C140.732 108.636 141.287 107.117 141.555 105.536C141.754 104.206 138.004 102.876 138.895 101.866C140.717 99.9504 140.451 99.0859 140.903 99.3785C142.539 100.469 143.749 101.094 144.122 102.038C145.106 104.432 144.388 103.754 145.452 105.882C145.824 106.654 146.396 108.542 145.452 108.875C140.238 111.269 144.228 109.686 139.852 113.357C137.937 114.966 137.99 117.347 138.522 117.347C138.762 117.347 138.975 117.254 138.988 116.988C139.134 114.82 141.541 113.756 142.832 111.88C143.667 110.843 144.83 110.121 146.13 109.832C147.46 109.327 147.008 106.534 146.13 105.111C145.844 104.45 145.634 103.758 145.505 103.049C145.505 102.863 145.585 102.969 145.638 103.049C149.003 104.964 148.298 103.049 148.697 107.811C148.218 114.673 150.665 113.942 149.575 121.284C148.989 125.114 152.461 123.412 152.886 120.752C154.097 113.051 152.487 113.49 155.347 118.903C155.639 119.448 156.424 122.893 157.382 125.101C157.592 125.737 157.897 126.338 158.286 126.883C158.431 126.977 158.594 127.041 158.764 127.069C158.934 127.097 159.109 127.09 159.276 127.047C159.444 127.005 159.601 126.928 159.737 126.822C159.873 126.716 159.986 126.583 160.068 126.431C160.196 125.913 160.219 125.375 160.135 124.848C159.922 123.611 159.696 121.975 159.51 121.204C159.284 120.206 159.297 120.299 160.321 122.84C162.782 128.998 162.103 125.779 164.843 137.669C166.173 143.388 167.357 145.25 167.383 146.155C166.891 146.048 165.428 145.064 164.484 145.849C164.389 145.912 164.308 145.994 164.247 146.091C164.186 146.187 164.146 146.296 164.13 146.408C164.114 146.521 164.121 146.637 164.152 146.746C164.184 146.856 164.238 146.958 164.311 147.046C165.056 148.136 167.357 149.466 167.929 150.57C166.266 149.892 163.114 145.928 160.494 147.032C160.337 147.089 160.197 147.182 160.084 147.305C159.972 147.428 159.892 147.577 159.85 147.738C159.808 147.899 159.806 148.068 159.844 148.23C159.882 148.392 159.959 148.543 160.068 148.668C160.29 148.914 160.535 149.136 160.8 149.333C163.646 151.714 162.728 150.756 160.92 150.863C160.68 150.9 160.458 151.013 160.286 151.185C160.115 151.357 160.002 151.578 159.965 151.818C159.928 152.058 159.969 152.304 160.08 152.519C160.192 152.735 160.37 152.909 160.587 153.017C161.265 153.47 161.917 154.161 162.489 154.534C168.141 158.524 165.388 156.795 170.921 159.415C171.653 159.76 171.998 159.574 172.145 159.734C172.223 159.905 172.264 160.091 172.264 160.279C172.969 165.599 172.969 164.828 172.384 165.027C170.921 165.493 169.378 165.932 169.072 167.554C168.767 169.177 171.613 169.762 173.156 169.509C174.486 169.297 173.156 169.948 175.443 172.821C176.509 174.42 177.439 176.107 178.223 177.862Z\"\n fill=\"#B96185\"\n />\n <path\n d=\"M183.69 82.1013C184.075 82.6466 184.381 82.6865 184.793 83.3515C184.288 87.3415 184.793 91.4911 181.695 92.6615C180.737 93.0472 179.035 93.3132 179.407 95.0821C179.779 96.851 181.149 96.4121 180.258 97.1835C178.822 98.3539 176.774 99.2583 175.603 100.721C173.981 102.401 172.199 103.92 170.283 105.257C162.463 112.199 164.87 110.896 163.487 108.914C163.086 108.459 162.592 108.096 162.037 107.85C160.228 106.839 159.537 104.525 159.231 103.86C158.167 101.759 158.393 102.53 155.241 97.9948C154.057 96.3057 153.618 95.3348 151.823 94.8826C151.011 94.6565 148.79 93.4196 149.535 93.1802C149.668 93.1802 151.477 92.6083 152.674 92.196C154.975 91.398 155.214 89.802 157.116 88.6981C158.505 87.7431 159.837 86.7084 161.106 85.5992C164.737 82.7929 165.708 82.5801 167.317 80.5452C168.654 79.2621 170.184 78.1983 171.853 77.3931C172.869 76.7005 173.786 75.8727 174.579 74.9326C175.124 74.3873 174.406 73.2036 179.46 78.1911C181.256 80.0265 182.626 80.4521 183.69 82.1013Z\"\n fill=\"#B96185\"\n />\n <path\n d=\"M182.758 30.2189C181.774 34.2089 181.428 33.637 175.231 37.893C175.119 38.0027 174.968 38.0641 174.812 38.0641C174.655 38.0641 174.505 38.0027 174.393 37.893C173.554 37.2409 172.775 36.5154 172.065 35.7251C171.054 34.3951 170.549 34.6079 170.961 34.3951C174.446 32.5065 174.606 33.3311 178.037 25.4043C178.21 25.0053 178.303 24.6462 178.596 24.8723C180.072 25.923 181.029 25.923 182.758 30.2189Z\"\n fill=\"#92CAD9\"\n />\n <path\n d=\"M176.441 165.571C177.771 165.384 179.247 166.355 178.383 167.1C176.8 168.43 171.627 168.842 170.656 168.111C169.193 167.007 172.93 165.118 173.023 166.262C173.103 167.207 173.914 167.313 173.861 166.608C173.808 165.903 173.409 161.847 173.289 160.304C173.289 159.945 173.076 159.612 173.701 159.559C174.326 159.506 174.42 159.333 174.499 160.291C174.579 161.248 175.138 166.342 175.231 166.794C175.231 166.897 175.271 166.995 175.344 167.067C175.416 167.139 175.514 167.18 175.617 167.18C175.719 167.18 175.817 167.139 175.889 167.067C175.962 166.995 176.002 166.897 176.002 166.794C176.082 165.996 175.71 165.571 176.441 165.571Z\"\n fill=\"white\"\n />\n <path\n d=\"M175.71 134.45C175.71 134.65 175.311 134.45 174.792 134.371C173.914 134.218 173.023 134.156 172.132 134.184C168.581 134.437 167.078 134.796 166.067 136.379C165.907 136.618 165.974 136.512 165.415 134.171C164.99 132.389 164.737 132.03 165.415 132.243C168.315 133.054 173.848 131.671 175.111 130.58C175.909 129.888 175.71 129.463 175.71 134.45Z\"\n fill=\"white\"\n />\n <path\n d=\"M175.63 137.431C175.822 140.383 175.562 143.348 174.859 146.222C173.741 149.879 169.685 149.015 168.395 145.451C168.062 144.533 166.293 139.692 166.48 138.734C167.964 139.289 169.563 139.471 171.135 139.266C172.742 138.965 174.271 138.34 175.63 137.431Z\"\n fill=\"#FFF59E\"\n />\n <path\n d=\"M174.725 135.115C175.31 135.262 175.949 135.86 175.523 136.339C174.067 137.608 172.236 138.365 170.309 138.494C168.474 138.387 166.319 138.361 166.319 137.483C166.45 136.962 166.744 136.496 167.157 136.153C168.171 135.523 169.33 135.166 170.522 135.115C171.907 134.814 173.34 134.814 174.725 135.115Z\"\n fill=\"#FFF59E\"\n />\n <path\n d=\"M174.565 127.733C175.815 128.092 175.895 130.127 170.256 131.231C166.133 132.042 164.457 131.164 164.776 130.353C165.054 129.7 165.56 129.171 166.199 128.863C168.835 127.738 171.726 127.347 174.565 127.733Z\"\n fill=\"white\"\n />\n <path\n d=\"M173.608 155.504C173.608 155.677 173.528 155.863 173.355 155.85C172.655 155.716 171.969 155.515 171.307 155.251C169.01 154.652 166.936 153.4 165.336 151.647C164.188 150.612 162.961 149.669 161.665 148.827C160.667 148.096 161 147.79 161.252 147.604C161.308 147.585 161.369 147.585 161.425 147.604C161.865 147.617 162.296 147.725 162.689 147.923C163.81 148.477 164.848 149.184 165.774 150.024C168.288 152.432 169.924 152.033 169.911 153.163C169.911 154.493 171.108 154.493 173.355 155.251C173.595 155.291 173.595 155.384 173.608 155.504Z\"\n fill=\"#D6AD9E\"\n />\n <path\n d=\"M173.05 150.171C173.209 151.408 173.236 151.315 172.837 151.301C172.158 151.301 172.504 151.155 172.238 150.264C172.145 149.958 172.238 149.838 172.571 149.812C172.903 149.785 172.97 149.732 173.05 150.171Z\"\n fill=\"white\"\n />\n <path\n d=\"M171.174 151.009C171.174 151.408 171.041 151.648 170.602 151.368C170.163 151.089 169.365 150.358 168.634 149.746C167.011 148.416 167.131 148.416 165.641 147.285C165.468 147.166 164.857 146.807 165.123 146.434C165.258 146.308 165.43 146.228 165.614 146.204C165.797 146.18 165.983 146.214 166.147 146.301C167.064 146.723 167.904 147.294 168.634 147.99C169.182 148.637 169.881 149.139 170.669 149.453C171.121 149.613 171.041 149.719 171.174 151.009Z\"\n fill=\"#D6AD9E\"\n />\n <path\n d=\"M168.833 61.7389C169.033 62.6034 168.062 62.231 166.466 62.2044C164.564 62.2044 161.997 58.2144 162.236 56.7115C162.755 53.3865 161.97 53.2003 162.994 53.187C167.197 53.187 166.665 53.5461 166.652 54.7963C166.625 58.108 168.487 60.2626 168.833 61.7389Z\"\n fill=\"#FFD152\"\n />\n <path\n d=\"M164.218 115.273C164.244 115.525 164.22 115.779 164.147 116.021C164.074 116.263 163.953 116.488 163.792 116.683C163.619 116.883 163.54 116.789 163.513 116.683C163.486 116.577 163.353 115.273 162.808 112.866C162.808 112.64 162.515 111.908 162.263 111.908C162.01 111.908 161.983 112.294 162.077 112.773C162.436 114.661 163.127 117.614 162.648 118.811C162.582 118.678 161.318 115.154 160.733 113.185C160.494 112.307 160.201 111.602 159.962 111.642C159.908 111.649 159.855 111.666 159.808 111.693C159.76 111.72 159.718 111.757 159.685 111.8C159.651 111.843 159.627 111.893 159.613 111.946C159.599 111.998 159.595 112.054 159.603 112.108C159.683 113.438 164.364 125.009 163.26 125.98C162.914 126.286 162.795 125.82 162.382 124.929C161.372 122.761 159.31 116.763 158.539 116.47C158.192 115.465 157.929 114.433 157.754 113.385C157.621 112.786 157.395 112.201 157.129 112.214C156.863 112.228 156.69 112.972 156.77 113.252C156.77 113.252 158.658 120.088 159.23 123.533C159.383 124.233 159.476 124.945 159.51 125.661C159.518 125.808 159.475 125.953 159.39 126.073C159.111 126.365 158.898 126.206 158.486 125.368C157.764 123.641 157.173 121.863 156.717 120.048C156.237 118.481 155.632 116.956 154.908 115.486C154.678 114.704 154.257 113.991 153.684 113.411C152.966 112.999 152.74 113.411 152.7 115.087C152.634 116.937 152.447 118.781 152.141 120.607C151.999 121.027 151.797 121.426 151.543 121.79C151.184 122.362 150.918 122.482 150.572 122.256C149.854 121.79 151.809 118.572 149.92 112.666C149.069 110.392 150.053 108.105 149.309 104.115C148.883 101.84 148.417 101.774 148.311 102.399C148.018 104.035 145.837 101.268 141.568 98.7015C140.717 98.1828 141.435 98.7015 143.869 91.6259C143.975 91.32 143.869 91.32 146.875 93.3416C154.855 98.8744 151.21 93.8869 155.693 100.404C156.934 101.861 157.992 103.465 158.845 105.179C161.651 110.884 162.542 107.506 163.486 111.004C163.895 112.394 164.14 113.827 164.218 115.273Z\"\n fill=\"#FFC6A6\"\n />\n <path\n d=\"M152.727 8.31124C155.68 7.75264 154.483 7.48664 153.977 10.9712C153.871 11.6761 153.977 15.0676 153.977 15.4666C153.977 17.5281 154.363 17.8473 153.672 17.9537C152.98 18.0601 151.69 18.6719 150.586 17.6611C149.176 16.3311 149.256 15.1341 148.631 12.1549C148.737 11.45 148.844 10.8249 148.91 10.2397C148.963 9.30874 151.849 8.47084 152.727 8.31124Z\"\n fill=\"#84D492\"\n />\n <path\n d=\"M150.56 178.499C150.732 180.666 151.996 181.265 151.61 182.129C151.225 182.994 152.368 184.164 149.376 191.945C148.754 194.223 148.275 196.537 147.939 198.874C147.424 200.984 146.726 203.044 145.851 205.032C141.476 217.654 148.059 208.862 130.969 211.536C125.649 212.374 126.061 212.972 119.943 211.669C118.121 211.283 114.344 211.735 113.719 210.525C111.059 205.577 112.708 206.189 112.681 203.237C112.681 201.508 111.258 201.627 111.577 200.696C111.997 198.983 112.708 197.354 113.679 195.882C114.423 194.738 116.059 190.828 114.49 189.91C113.918 189.577 114.251 189.045 113.945 188.5C113.639 187.955 117.509 184.776 117.935 184.51C118.765 184.305 119.562 183.983 120.302 183.553C120.943 183.206 121.495 182.716 121.915 182.121C122.335 181.525 122.611 180.841 122.723 180.121C122.922 179.536 122.869 179.815 124.385 177.78C124.651 177.421 124.385 176.823 124.944 176.916C125.782 177.075 124.944 177.993 126.034 178.738C128.388 180.347 138.603 181.398 138.776 176.929C138.869 174.588 137.273 171.609 137.964 163.456C138.563 156.474 142.766 136.776 139.042 133.598C137.299 132.121 130.383 132.201 127.923 132.268C126.686 132.443 125.46 132.692 124.252 133.013C123.015 133.225 121.113 134.196 120.994 135.673C120.142 145.142 124.013 156.806 124.425 159.293C123.218 159.411 121.999 159.298 120.834 158.961C120.411 158.831 119.965 158.787 119.525 158.831C119.084 158.875 118.656 159.007 118.267 159.219C117.878 159.431 117.536 159.719 117.259 160.065C116.983 160.411 116.778 160.809 116.658 161.235C116.472 162.472 115.049 162.831 115.009 164.946C115.009 166.276 115.634 166.276 114.929 167.606C114.348 168.363 114.09 169.319 114.211 170.266C114.45 172.287 113.173 172.926 113.28 174.256C113.28 174.602 113.28 174.469 110.034 175.945C108.598 176.61 108.625 176.823 108.611 176.464C108.611 175.027 107.281 170.665 108.811 158.455C109.42 154.541 109.469 150.56 108.957 146.632C108.172 138.811 107.627 143.413 112.269 141.525C113.16 141.152 113.226 140.195 112.455 139.942C112.133 139.787 111.849 139.565 111.621 139.291C111.393 139.016 111.226 138.696 111.133 138.351C111.04 138.007 111.021 137.646 111.08 137.294C111.138 136.942 111.271 136.607 111.471 136.311C113.466 132.946 114.836 130.06 112.349 125.764C111.285 123.915 110.034 122.612 110.633 122.865C112.295 123.57 114.729 123.184 115.328 121.375C115.434 121.029 115.501 120.577 114.517 120.617C113.957 120.637 113.398 120.556 112.867 120.378C115.62 119.486 116.525 116.68 115.088 116.614C114.237 116.614 113.758 116.959 113.04 116.294C110.261 113.634 113.266 110.815 113.891 110.097C114.517 109.378 116.458 114.938 116.738 115.297C117.788 116.627 118.214 117.731 120.355 118.356C121.486 118.702 121.446 118.21 123.015 114.778C123.733 113.156 126.141 110.961 127.005 112.517C127.87 114.073 128.428 115.177 129.891 115.802C130.745 116.369 131.773 116.615 132.791 116.494C134.772 116.361 134.892 116.574 135.73 117.119C136.568 117.664 134.214 117.904 136.661 125.95C137.419 128.464 138.975 128.61 139.534 130.765C140.651 134.954 143.71 134.755 143.524 142.615C143.444 145.275 144.854 146.485 145.266 149.797C145.452 151.526 147.048 152.457 146.942 160.437C146.942 165.012 146.343 165.411 149.283 173.538C150.546 177.288 150.44 177.355 150.56 178.499Z\"\n fill=\"#B96185\"\n />\n <path\n d=\"M147.394 59.8368C147.873 59.1984 147.833 58.9856 147.554 61.3264C147.389 62.3272 146.926 63.2547 146.224 63.9864C145.918 64.1859 145.984 63.8534 145.758 63.3879C145.532 62.9224 144.747 63.0022 144.88 63.6805C146.995 75.4244 144.481 75.8101 144.801 80.7444C145.093 85.3462 143.191 90.6263 141.276 95.3744C137.672 104.152 136.621 101.226 132.325 101.732C129.426 102.064 127.843 100.921 125.675 99.6969C124.271 98.8429 123.043 97.7278 122.058 96.4118C121.499 95.8532 121.047 96.332 121.313 96.9305C122.643 99.8033 128.029 102.929 131.115 102.902C137.419 102.902 134.706 102.716 135.69 105.815C135.956 106.64 136.155 107.624 136.275 107.85C136.339 107.963 136.44 108.05 136.562 108.095C136.684 108.14 136.818 108.14 136.94 108.095C137.062 108.05 137.163 107.964 137.227 107.85C137.29 107.737 137.311 107.605 137.286 107.477C136.824 106.264 136.563 104.984 136.515 103.687C136.515 103.075 136.515 102.942 137.632 102.876C137.845 102.876 138.017 103.82 139.587 104.764C141.688 106.014 138.882 109.153 137.366 112.638C136.262 115.178 136.355 116.495 135.903 116.029C135.131 115.231 134.254 115.537 131.753 115.484C131.248 115.484 130.915 115.165 130.104 114.713C129.04 114.141 128.774 113.276 127.723 111.627C126.673 109.978 126.992 111.481 122.323 108.315C119.158 106.161 120.102 103.966 118.001 102.091C117.87 101.945 117.799 101.755 117.801 101.559C117.908 97.6487 116.471 95.9729 116.538 95.002C116.713 92.6739 116.646 90.3339 116.338 88.0195C116.338 87.2747 117.469 87.9264 118.32 86.4634C118.415 86.3216 118.465 86.155 118.465 85.9846C118.465 85.8143 118.415 85.6477 118.32 85.5058C117.908 85.1068 117.296 85.8516 117.07 86.0644C116.099 86.9821 113.226 86.0644 114.41 83.1251C116.857 85.6122 118.028 82.9123 116.937 82.7261C116.418 82.6463 116.338 83.3379 115.873 83.0187C113.652 81.4892 117.735 78.3903 115.208 71.0487C113.878 67.0587 116.631 68.7212 115.979 65.7287C115.886 65.2898 115.394 65.5824 115.368 65.7287C115.075 67.0587 113.718 67.7636 113.758 68.6148C113.758 68.9872 112.721 68.3621 112.841 67.1385C112.92 66.4469 112.322 64.9972 113.532 64.3721C113.842 64.2433 114.097 64.0112 114.255 63.7154C114.412 63.4196 114.462 63.0782 114.397 62.7495C113.958 60.9141 115.248 57.9349 118.919 56.2857C119.185 56.1793 120.94 55.8069 121.22 55.7537C121.924 55.6074 120.368 57.2433 120.648 58.5733C120.683 59.3572 120.79 60.1363 120.967 60.9008C122.297 63.0554 122.43 63.215 122.882 63.1884C124.106 63.1884 123.122 61.8584 123.999 60.5284C124.083 60.4081 124.115 60.2598 124.091 60.1155C124.066 59.9713 123.985 59.8425 123.866 59.757C123.215 59.1319 122.536 61.2732 122.536 61.3796C118.959 57.9083 126.393 50.3805 132.285 54.3705C135.49 56.5517 134.214 59.6905 135.358 59.6107C136.249 59.5442 136.062 57.097 134.626 55.0089C134.902 54.3916 135.016 53.7142 134.958 53.0405C136.288 54.0779 136.98 55.0621 136.887 59.6905C136.887 60.7944 138.656 60.5683 139.068 54.5833C139.068 54.4503 139.201 54.3838 139.321 54.5833C140.97 56.3788 140.185 58.5733 139.959 59.624C139.733 60.6747 142.034 61.2998 141.13 55.634C141.13 55.1685 140.997 55.0222 141.476 55.3946C143.843 57.2566 142.46 60.9806 142.46 61.353C142.46 61.9781 143.138 61.9382 143.377 61.6057C144.188 60.6721 144.831 59.6058 145.279 58.4536C145.692 57.5226 145.279 60.5683 144.907 61.353C144.814 61.5392 144.734 62.8293 145.466 62.6032C146.197 62.3771 147.168 60.1161 147.394 59.8368ZM143.298 73.2432C144.042 73.6555 144.495 72.8575 143.923 72.3521C143.337 72.01 142.803 71.5843 142.34 71.0886C141.835 70.3039 140.345 71.2615 139.866 70.8093C139.387 70.3571 137.725 71.6738 137.446 73.1634C138.031 74.3471 137.978 73.0703 140.438 72.5117C142.287 72.0994 142.539 72.8043 143.298 73.2432ZM141.702 78.6829C142.034 78.8159 143.564 79.7735 143.524 78.6829C142.779 77.2731 139.534 76.9273 137.938 78.2573C137.485 78.6297 138.004 79.175 138.39 79.0287C139.417 78.5221 140.592 78.3995 141.702 78.6829ZM140.185 89.948C140.598 88.618 138.855 89.5756 138.137 89.6554C135.348 89.9358 132.531 89.7606 129.798 89.1367C129.087 89.0299 128.388 88.8562 127.71 88.618C127.59 88.5249 127.71 88.3919 127.71 88.219C127.843 87.5407 127.377 87.2348 126.3 88.0195C124.505 89.3495 126.074 92.0095 126.646 90.1076C126.965 90.5864 126.407 89.8283 129.16 95.1749C133.15 102.902 138.35 90.5864 139.893 90.2007C139.959 90.1857 140.02 90.1549 140.071 90.1108C140.122 90.0667 140.161 90.0109 140.185 89.948ZM134.865 87.288C138.111 86.6097 137.831 83.1783 136.036 80.638C135.42 79.6985 135.1 78.5958 135.118 77.4726C135.118 76.7544 134.293 77.0736 134.28 77.4726C134.134 80.3454 134.52 79.9198 135.796 82.4468C137.765 86.3038 133.509 87.0486 131.939 85.7319C131.434 85.3063 131.407 84.7344 130.862 84.9871C129.718 85.426 131.407 88.0461 134.865 87.3146V87.288ZM131.687 57.7354C132.179 58.1876 132.897 57.8551 132.578 57.1502C131.421 54.6764 126.619 54.7562 125.343 56.964C124.864 57.7886 125.249 58.294 125.343 58.294C125.994 58.3472 127.83 54.1976 131.687 57.7354ZM131.54 59.6905C132.538 59.6905 132.405 58.7861 131.66 58.5999C126.633 57.2699 123.933 62.7096 125.595 62.9756C126.433 63.0953 125.688 61.6456 127.484 60.4486C128.054 60.0152 128.718 59.721 129.422 59.5894C130.127 59.4578 130.852 59.4924 131.54 59.6905ZM130.397 79.4543C131.141 79.4543 131.168 78.8159 130.716 78.3637C130.028 77.8895 129.226 77.6095 128.392 77.5533C127.559 77.4971 126.726 77.6668 125.981 78.0445C125.462 78.3238 124.571 79.2282 125.116 79.6006C125.941 80.1592 126.579 77.3662 130.397 79.4543ZM129.904 72.8043C132.139 72.8043 128.388 68.4818 127.165 70.5832C127.165 70.6763 126.832 70.7162 126.686 70.663C125.116 70.1177 122.137 73.6954 123.414 73.988C124.691 74.2806 124.664 70.1443 129.904 72.8309V72.8043ZM120.688 64.1593C121.153 62.6032 121.432 62.6298 121.166 62.3638C120.648 61.8185 119.836 63.0953 119.663 63.7869C119.663 64.0529 119.57 63.88 119.544 63.7869C119.217 63.1111 119.047 62.3699 119.047 61.619C119.047 60.8681 119.217 60.127 119.544 59.4511C119.624 59.1984 120.222 58.0014 119.344 58.1211C117.097 59.9831 118.227 65.0504 119.717 65.7553C120.741 66.2474 120.342 65.2632 120.688 64.1859V64.1593ZM118.24 71.3546C118.777 70.2015 119.131 68.9722 119.291 67.7104C119.291 67.1651 119.291 66.3804 118.613 66.7927C118.294 66.9789 118.32 67.8567 117.881 69.2665C117.442 70.6763 116.631 71.6339 117.256 72.8974C117.622 73.4408 117.849 74.066 117.916 74.7178C117.984 75.3697 117.889 76.028 117.642 76.6347C117.469 76.9805 117.017 78.4036 117.722 78.4967C118.427 78.5898 118.427 78.3504 118.985 76.3953C119.717 73.9082 117.921 72.8442 118.24 71.3812V71.3546Z\"\n fill=\"#FFC6A6\"\n />\n <path\n d=\"M138.603 48.7992C139.343 50.2694 139.957 51.8 140.438 53.3744C139.467 53.3744 138.896 51.8316 138.044 52.3503C137.419 52.7493 138.403 53.2015 137.871 55.9812C136.994 51.9912 134.28 51.4193 133.975 51.6055C133.349 52.0178 134.374 52.4434 133.975 53.9995C133.29 53.2486 132.439 52.6685 131.489 52.3059C130.54 51.9433 129.519 51.8082 128.508 51.9114C127.564 51.9912 126.673 52.2971 125.742 52.4168C125.035 52.6057 124.386 52.9666 123.853 53.4675C120.794 55.6753 123.734 53.7867 119.052 54.9704C117.722 55.3029 115.541 57.3777 115.833 56.6196C123.813 36.0445 119.823 45.0087 123.308 42.2157C125.409 40.5532 124.851 38.4518 123.667 37.5474C122.909 36.9755 123.202 38.5183 126.832 27.4394C126.979 26.9872 127.138 26.402 127.497 26.4153C127.857 26.4286 128.362 27.7453 129.293 27.8251C130.224 27.9049 129.586 26.8675 132.844 34.9007C133.004 35.2864 136.581 43.2132 136.462 43.9314C135.983 44.1215 135.57 44.4463 135.273 44.8666C134.975 45.2868 134.806 45.7843 134.786 46.2988C134.48 50.209 138.47 48.7593 138.603 48.7992ZM134.068 49.3977C134.147 47.9746 131.221 46.9904 131.088 49.5041C131.095 49.6997 131.141 49.892 131.222 50.0701C131.303 50.2481 131.419 50.4084 131.562 50.5418C131.706 50.6752 131.874 50.779 132.057 50.8474C132.241 50.9158 132.436 50.9475 132.631 50.9405C132.827 50.9335 133.019 50.888 133.197 50.8067C133.375 50.7254 133.536 50.6098 133.669 50.4665C133.802 50.3233 133.906 50.1552 133.975 49.9718C134.043 49.7884 134.075 49.5933 134.068 49.3977ZM128.295 37.973C128.295 40.3404 132.166 40.8059 132.152 37.973C132.139 35.1401 128.295 35.5923 128.295 37.973ZM130.317 45.3678C130.477 43.9048 129.24 43.3861 127.777 43.2132C127.318 43.3218 126.897 43.5502 126.556 43.875C126.215 44.1998 125.966 44.6094 125.835 45.0619C125.024 48.0012 130.251 49.0519 130.317 45.3678ZM129.625 31.9082C129.625 30.4718 127.285 29.6073 126.699 31.1634C125.396 34.6746 129.612 34.4086 129.625 31.9082ZM124.053 49.9829C124.053 47.6953 120.635 47.1633 119.704 49.6504C118.626 52.5232 124.013 54.1458 124.053 49.9829Z\"\n fill=\"#F8865C\"\n />\n <path\n d=\"M139.427 138.134C139.733 145.941 139.653 141.871 135.636 141.605C132.462 141.387 129.279 141.347 126.1 141.485C125.431 141.463 124.765 141.583 124.146 141.837C123.527 142.092 122.969 142.475 122.509 142.961C121.964 143.733 121.831 137.974 121.818 137.429C121.804 136.883 121.818 136.963 122.762 137.282C127.045 138.705 132.152 138.027 136.953 137.495C138.882 137.282 139.108 135.979 139.254 136.737C139.347 137.198 139.404 137.664 139.427 138.134Z\"\n fill=\"white\"\n />\n <path\n d=\"M137.233 145.848C139.361 145.356 139.202 144.305 139.202 145.768C137.18 161.928 136.808 160.478 136.635 166.33C136.435 173.659 138.523 176.864 137.207 177.702C135.803 178.561 134.167 178.965 132.525 178.859C130.876 178.859 127.684 178.526 126.872 177.782C126.716 177.58 126.616 177.342 126.58 177.09C126.46 176.598 127.019 176.624 127.724 175.587C128.429 174.55 127.724 174.151 128.668 174.151C129.217 174.218 129.774 174.143 130.284 173.93C130.795 173.718 131.242 173.377 131.581 172.94C132.286 172.156 131.368 171.331 132.153 171.371C134.334 171.477 136.063 169.708 134.906 168.312C134.028 167.235 132.964 167.501 133.443 166.982C135.092 165.133 133.004 163.617 130.876 162.433C129.381 161.405 127.797 160.515 126.141 159.773C125.875 159.667 125.702 159.547 125.675 159.295C125.675 159.295 121.938 145.143 122.803 145.529C127.218 147.418 132.538 146.952 137.233 145.848ZM135.983 149.453C135.983 148.522 134.773 148.907 134.746 149.546C134.719 150.477 135.97 150.224 135.983 149.453ZM134.653 176.664C136.222 176.358 135.823 173.738 135.69 171.903C135.69 171.198 134.839 171.211 134.866 171.903C134.946 174.563 135.039 174.563 134.786 175.228C134.533 175.893 133.695 176.132 130.37 175.933C129.801 175.878 129.239 175.762 128.695 175.587C128.442 175.521 128.149 175.494 128.176 175.88C128.202 176.265 129.266 176.704 130.397 176.851C131.83 176.999 133.278 176.936 134.693 176.664H134.653ZM133.802 156.488C133.802 157.526 135.132 157.619 135.132 156.701C135.172 156.076 133.855 155.544 133.842 156.488H133.802ZM130.769 152.498C130.769 151.767 129.107 151.394 129.32 152.498C129.493 153.363 130.809 153.522 130.809 152.565L130.769 152.498ZM129.373 158.922C129.958 158.922 130.543 157.592 129.107 157.592C128.953 157.777 128.828 157.983 128.734 158.204C128.736 158.381 128.802 158.551 128.919 158.683C129.037 158.815 129.198 158.9 129.373 158.922ZM124.811 150.184C124.705 151.434 126.447 151.687 126.434 150.517C126.434 150.051 126.088 150.264 125.928 149.772C125.769 149.28 124.891 149.2 124.811 150.118V150.184Z\"\n fill=\"#FFF59E\"\n />\n <path\n d=\"M137.206 133.84C138.536 134.239 139.4 134.984 138.536 135.583C137.405 136.421 137.365 136.474 134.626 136.913C131.886 137.352 125.888 137.445 122.815 136.421C121.725 136.061 121.911 135.423 122.456 135.091C123.4 134.452 125.395 133.508 130.263 133.401C132.586 133.348 134.909 133.495 137.206 133.84Z\"\n fill=\"white\"\n />\n <path\n d=\"M138.084 47.6413C138.416 48.3728 137.139 48.1999 137.126 48.293C136.728 48.2541 136.353 48.0879 136.057 47.8192C135.76 47.5505 135.558 47.1935 135.481 46.801C135.403 46.4086 135.454 46.0016 135.626 45.6403C135.798 45.279 136.081 44.9826 136.434 44.7951C136.807 44.5424 136.661 44.5424 138.084 47.6413Z\"\n fill=\"white\"\n />\n <path\n d=\"M131.488 90.627C133.988 90.9595 138.018 90.5472 137.765 91.026C137.5 91.6054 137.145 92.1395 136.714 92.6087C136.392 92.9037 135.967 93.0612 135.531 93.0476C133.293 93.1684 131.062 92.7103 129.054 91.7176C128.377 91.2254 127.859 90.5457 127.564 89.7625C127.271 89.3103 128.907 90.2679 131.488 90.627Z\"\n fill=\"white\"\n />\n <path\n d=\"M124.185 163.909C125.994 164.281 134.173 168.564 134.107 169.229C134.04 169.894 132.497 170.559 130.436 169.92C127.563 168.989 124.198 166.662 122.296 166.835C121.405 166.915 118.825 165.837 118.745 166.835C118.745 167.34 119.623 167.353 119.663 167.367C124.557 168.537 121.405 166.635 129.758 171.038C130.236 171.29 131.088 171.689 130.462 172.368C128.68 174.23 124.597 171.29 122.682 171.29C120.182 171.29 120.088 170.652 119.836 171.29C119.37 172.62 122.083 172.141 123.493 172.501C124.539 172.82 125.565 173.202 126.566 173.644C127.63 174.097 126.659 175.599 125.621 175.573C124.384 175.573 123.866 175.48 122.389 175.493C121.547 175.618 120.7 175.698 119.849 175.732C119.437 175.732 119.37 176.424 119.929 176.65C120.128 176.726 120.333 176.788 120.541 176.836C120.476 177.087 120.392 177.331 120.288 177.568C119.157 179.603 118.24 179.284 118.639 180.002C119.224 181.066 121.152 178.924 121.512 177.342C121.524 177.245 121.566 177.154 121.633 177.082C121.7 177.01 121.788 176.962 121.884 176.943C122.469 176.796 122.389 176.278 123.706 176.703C121.698 179.363 121.751 178.938 121.618 179.949C121.618 180.414 120.647 182.343 119.756 182.609C118.054 183.18 117.242 183.606 116.045 183.127C115.673 182.968 114.715 183.127 114.715 183.54C114.715 183.952 114.715 183.925 115.606 184.244C116.497 184.564 116.471 184.151 111.204 188.86C110.739 189.285 111.005 189.312 109.967 186.2C109.089 184.209 108.684 182.042 108.783 179.869C108.783 177.076 108.238 178.02 111.683 176.331C114.197 175.094 112.853 175.161 113.319 177.342C113.351 177.493 113.441 177.626 113.571 177.711C113.701 177.796 113.859 177.825 114.01 177.794C114.569 177.674 114.29 176.863 114.383 175.506C114.434 174.612 114.554 173.722 114.742 172.846C115.793 171.516 114.409 170.545 115.832 168.151C117.256 165.757 115.3 165.212 116.444 163.403C116.938 162.811 117.28 162.109 117.442 161.355C117.66 160.721 118.117 160.197 118.716 159.894C119.314 159.591 120.007 159.533 120.647 159.733C123.959 160.491 125.382 159.6 127.59 161.249C129.797 162.898 130.715 162.792 132.723 164.813C133.255 165.332 132.471 166.396 132.311 166.449C132.152 166.502 127.59 163.217 124.039 162.605C120.487 161.994 120.208 161.98 119.929 162.286C119.118 163.457 122.828 163.643 124.185 163.909Z\"\n fill=\"#FFC6A6\"\n />\n <path\n d=\"M132.844 96.7038C132.473 96.8263 132.074 96.8293 131.701 96.7124C131.329 96.5954 131.003 96.3645 130.769 96.0522C130.476 95.6931 130.184 95.3074 130.33 94.9084C130.676 93.9907 135.81 95.3073 132.844 96.7038Z\"\n fill=\"#F8865C\"\n />\n <path\n d=\"M132.485 48.6768C133.509 48.5704 133.815 50.2063 132.644 50.2595C132.438 50.2453 132.241 50.1653 132.083 50.0313C131.925 49.8973 131.814 49.7163 131.767 49.5147C131.792 49.3205 131.874 49.1379 132.001 48.9891C132.129 48.8404 132.297 48.7319 132.485 48.6768Z\"\n fill=\"white\"\n />\n <path\n d=\"M130.117 23.1293C131.447 22.6106 132.192 23.3953 132.059 24.2199C131.926 25.0445 131.447 25.3371 131.008 25.377C130.569 25.4169 130.675 25.5632 130.609 25.909C130.463 26.6538 130.09 27.0927 129.438 27.0528C128.787 27.0129 128.468 26.175 128.175 25.9223C127.996 25.7378 127.753 25.6284 127.497 25.6164C126.778 25.6164 126.778 26.5873 126.167 26.3612C126.09 26.3294 126.026 26.2729 125.985 26.2006C125.944 26.1283 125.928 26.0444 125.941 25.9622C125.958 25.7388 125.989 25.5167 126.034 25.2972C126.18 24.8051 125.954 24.6322 125.395 24.9381C124.837 25.244 124.251 25.5898 123.547 25.1908C123.317 25.0651 123.136 24.8651 123.035 24.6235C122.933 24.3819 122.917 24.113 122.988 23.8608C123.134 23.1825 123.826 23.3155 124.039 23.3421C124.73 23.4352 124.717 23.2357 124.384 22.8367C124.052 22.4377 123.68 21.3072 124.797 20.9215C124.961 20.852 125.137 20.8162 125.315 20.8162C125.494 20.8162 125.67 20.852 125.834 20.9215C126.406 21.3338 126.672 21.6796 127.018 21.4402C127.364 21.2008 126.898 20.9082 127.177 20.2033C127.325 19.8587 127.594 19.5804 127.934 19.4212C128.273 19.262 128.659 19.2329 129.018 19.3396C129.378 19.4463 129.685 19.6812 129.883 19.9998C130.081 20.3184 130.154 20.6984 130.09 21.0678C130.069 21.6482 129.895 22.2126 129.585 22.7037C129.359 23.116 129.611 23.2623 130.117 23.1293Z\"\n fill=\"white\"\n />\n <path\n d=\"M131.474 37.9726C131.647 39.675 128.934 39.4888 128.987 37.8795C129.027 37.5729 129.172 37.2897 129.398 37.0786C129.623 36.8674 129.915 36.7415 130.224 36.7224C130.39 36.7168 130.555 36.7453 130.709 36.8062C130.863 36.8671 131.003 36.959 131.12 37.0762C131.238 37.1934 131.329 37.3334 131.39 37.4876C131.451 37.6418 131.48 37.8069 131.474 37.9726Z\"\n fill=\"white\"\n />\n <path\n d=\"M126.273 142.483C150.213 142.097 133.469 148.016 123.52 144.651C122.536 144.318 123.414 143.175 124.132 143.015C124.828 142.773 125.545 142.595 126.273 142.483Z\"\n fill=\"#FFF59E\"\n />\n <path\n d=\"M128.774 31.5477C128.987 31.8403 129.08 32.0265 128.428 32.8112C128.342 32.9875 128.189 33.1223 128.003 33.1859C127.817 33.2495 127.614 33.2367 127.437 33.1503C127.261 33.0639 127.126 32.9109 127.062 32.7251C126.999 32.5393 127.012 32.3358 127.098 32.1595C127.377 31.1088 127.47 31.1088 127.856 31.1221C128.033 31.1088 128.21 31.1409 128.37 31.2154C128.531 31.2899 128.67 31.4043 128.774 31.5477Z\"\n fill=\"white\"\n />\n <path\n d=\"M128.388 44.0489C130.822 44.5277 129.479 47.9724 127.058 46.6158C125.675 45.871 126.872 43.743 128.388 44.0489Z\"\n fill=\"white\"\n />\n <path\n d=\"M124.718 111.175C125.276 111.507 123.148 111.175 121.592 115.165C120.728 117.399 120.648 117.386 120.262 117.213C118.643 116.216 117.445 114.659 116.897 112.837C115.567 109.007 114.49 109.393 114.889 108.847C116.219 106.906 116.95 106.347 117.256 104.698C117.333 104.196 117.48 103.708 117.695 103.248C119.677 105.722 117.19 106.546 124.718 111.175Z\"\n fill=\"#B96185\"\n />\n <path\n d=\"M121.325 48.9848C122.004 48.3198 123.467 48.9848 123.374 50.2483C123.366 50.572 123.256 50.8849 123.059 51.142C122.862 51.399 122.588 51.5869 122.278 51.6785C121.967 51.7702 121.635 51.761 121.331 51.6522C121.026 51.5433 120.763 51.3405 120.581 51.0729C120.464 50.9083 120.386 50.7191 120.353 50.5199C120.32 50.3206 120.333 50.1164 120.39 49.9229C120.448 49.7293 120.549 49.5514 120.686 49.4027C120.822 49.254 120.991 49.1384 121.179 49.0646C121.234 49.0504 121.284 49.023 121.325 48.9848Z\"\n fill=\"white\"\n />\n <path\n d=\"M121.898 40.7651C122.816 38.5174 123.228 36.5091 124.066 39.9671C123.401 41.5631 122.736 41.8424 121.858 41.9754C121.339 42.0419 121.659 41.3503 121.898 40.7651Z\"\n fill=\"white\"\n />\n <path\n d=\"M91.3745 106.64C95.0453 107.97 94.6464 109.3 94.9523 108.356C95.9631 105.23 95.9763 105.696 95.9364 105.549C95.83 105.137 95.4444 105.882 92.0529 102.637C90.0313 100.695 90.4303 100.655 90.7229 100.083C92.7711 100.948 93.1568 103.475 98.0645 105.044C102.453 106.374 106.324 98.7399 108.106 94.5238C109.888 90.3077 108.611 87.3684 109.795 84.0301C109.864 83.767 109.879 83.4926 109.838 83.2237C109.798 82.9547 109.703 82.6968 109.56 82.4654C109.417 82.2341 109.229 82.0343 109.006 81.878C108.784 81.7217 108.532 81.6123 108.266 81.5563C107.526 81.4774 106.778 81.5315 106.058 81.7159C105.933 81.7013 105.817 81.6442 105.73 81.5542C105.642 81.4642 105.589 81.3468 105.578 81.2218C105.567 81.0968 105.599 80.9718 105.67 80.868C105.74 80.7642 105.844 80.6879 105.965 80.6519C109.755 79.7076 110.3 82.1814 110.194 81.0642C110.082 78.2897 109.636 75.5388 108.864 72.8714C108.625 71.9803 108.771 71.7808 107.534 71.7542C104.701 71.7542 101.895 71.7542 100.645 69.7592C100.538 69.5863 100.392 69.5331 100.232 69.7592C99.1418 71.3818 96.6813 71.0892 93.1169 73.2438C92.1859 73.8024 91.7869 74.3211 90.7495 76.9412C88.0895 83.3917 93.4095 87.8073 87.1851 97.1173C86.6511 97.9111 86.1669 98.7373 85.7354 99.5911C86.0831 99.7202 86.4 99.9206 86.6657 100.179C86.9314 100.438 87.14 100.75 87.2782 101.094C88.1294 101.333 85.8816 104.579 91.3745 106.64ZM106.244 86.9295C106.443 86.6103 106.763 86.7566 107.029 86.7699C107.295 86.7832 107.335 87.2886 107.335 87.6078C107.428 88.2063 106.364 88.6718 106.098 87.9004C106.044 87.7384 106.03 87.5661 106.055 87.3975C106.081 87.2289 106.145 87.0686 106.244 86.9295ZM103.584 89.9752C102.48 89.257 102.693 87.9137 102.786 86.7699C102.786 86.2379 103.544 86.3842 103.637 86.7699C103.916 87.7408 103.331 89.0043 104.887 89.4299C107.202 90.0949 106.084 93.779 103.398 93.7524C100.485 93.9519 99.7801 91.0924 101.682 91.9835C101.921 92.1032 102.134 92.2761 102.36 92.3825C102.81 92.5864 103.32 92.6149 103.79 92.4624C104.26 92.3098 104.656 91.9873 104.901 91.5579C105.34 90.6402 104.608 90.6535 103.571 89.9752H103.584ZM98.0778 79.3352C101.576 79.3352 102.733 81.6494 101.762 82.0883C101.137 82.3676 101.389 81.2371 99.86 80.7583C96.1892 79.6012 95.5641 82.3809 94.7927 81.41C94.0213 80.4391 96.136 79.3086 98.0645 79.3086L98.0778 79.3352ZM97.8384 86.9827C97.8384 86.0783 98.9556 85.8123 99.1684 86.6236C99.288 87.8206 97.732 88.1797 97.8251 86.9561L97.8384 86.9827ZM95.8966 92.3027C95.9989 92.3055 96.0973 92.343 96.1756 92.409C96.2539 92.475 96.3074 92.5656 96.3275 92.666C96.3476 92.7664 96.333 92.8707 96.2861 92.9617C96.2393 93.0528 96.1629 93.1252 96.0695 93.1672C95.9498 93.1672 95.8035 93.1672 95.6838 93.2869C95.6675 93.3176 95.6589 93.3518 95.6589 93.3866C95.6589 93.4214 95.6675 93.4557 95.6838 93.4864C98.3438 95.9469 102.44 95.7607 103.837 96.2927C104.475 96.5321 103.331 97.7158 103.012 98.2478C101.961 100.003 100.951 101.746 99.2482 101.972C97.1335 101.972 95.2582 96.3193 94.8592 94.9095C94.7528 94.4573 94.7661 94.4573 94.3139 94.5371C93.0504 94.8031 94.0745 92.1298 95.9099 92.3426L95.8966 92.3027Z\"\n fill=\"#FFC6A6\"\n />\n <path\n d=\"M113.545 7.66139C113.893 8.70602 113.984 9.8192 113.811 10.9066C113.704 11.9307 113.239 12.2366 112.295 13.0346C111.749 13.4735 111.191 13.8991 111.217 13.2341C111.35 10.348 109.887 8.16679 108.451 5.94569C108.185 5.50679 109.249 4.73539 110.765 4.70879C112.534 4.64229 112.228 4.96149 113.545 7.66139Z\"\n fill=\"#92CAD9\"\n />\n <path\n d=\"M107.879 146.275C108.227 148.581 108.334 150.917 108.198 153.244C107.294 164.27 107.972 153.816 107.161 164.775C106.562 172.676 107.48 174.006 107.6 179.073C107.879 190.91 113.811 190.019 105.791 195.538C101.069 198.77 94.5922 197.786 90.8549 199.528C88.82 200.486 87.3038 201.324 85.4684 200.26C83.8458 199.329 85.2955 199.342 84.2182 195.671C82.303 189.101 83.1409 194.115 81.1991 181.134C80.9065 179.166 80.0819 179.738 84.0985 178.634C84.9357 178.089 85.92 177.816 86.9181 177.849C87.9023 177.77 88.1151 177.357 88.3545 178.315C88.5008 178.913 90.3628 188.702 90.3894 188.848C90.4958 189.314 90.3894 189.367 90.15 189.474C87.3836 190.391 86.3728 191.668 86.4792 193.277C86.4792 194.395 87.4634 195.365 89.7111 195.512C97.9305 196.057 100.803 189.833 95.0311 188.968C93.1691 188.689 93.0627 189.261 92.8499 187.638C92.6371 186.016 92.2514 181.387 91.6529 176.559C91.5731 175.854 92.7169 175.788 92.3445 174.338C92.145 173.54 93.4883 173.913 94.8981 172.888C95.1837 172.676 95.3987 172.383 95.515 172.047C95.6314 171.711 95.6437 171.347 95.5503 171.004C95.457 170.661 95.2623 170.354 94.9917 170.123C94.7212 169.892 94.3873 169.748 94.0336 169.71C93.8075 169.71 93.9139 169.617 93.9272 169.484C94.0868 168.154 95.1375 168.38 96.5074 167.595C97.4384 167.076 97.3586 165.933 96.8665 165.041C96.3744 164.15 95.6961 164.23 94.6853 164.217C94.273 164.217 94.2331 164.137 94.2464 163.512C94.2464 161.304 93.2888 150.598 93.0494 148.217C93.932 148.699 94.9316 148.924 95.9355 148.869C97.0128 148.869 99.0743 148.097 99.2472 146.914C99.2472 146.528 98.7418 146.448 98.3162 146.395C97.7059 146.265 97.1345 145.994 96.6478 145.604C96.1612 145.213 95.773 144.714 95.5143 144.146C95.2556 143.578 95.1337 142.958 95.1583 142.334C95.183 141.711 95.3535 141.102 95.6562 140.556C96.2547 139.226 100.484 136.952 99.9122 134.079C99.593 132.51 99.9122 131.938 98.8216 131.033C97.3187 129.703 95.6429 128.852 96.4808 127.19C97.066 126.046 97.0793 126.192 97.1857 126.432C97.6646 127.874 98.5794 129.132 99.8039 130.033C101.028 130.934 102.502 131.432 104.022 131.459C104.647 134.598 105.458 135.17 106.349 138.787C107.11 141.225 107.623 143.734 107.879 146.275Z\"\n fill=\"#92CAD9\"\n />\n <path\n d=\"M100.671 96.8228C102.001 97.1287 102.825 96.8228 102.453 97.3415C100.152 100.773 99.7928 100.879 99.181 100.959C97.718 100.001 96.6407 97.2218 96.1353 95.6391C95.9092 94.9076 96.4944 95.8519 100.671 96.8228Z\"\n fill=\"white\"\n />\n <path\n d=\"M99.2217 30.7494C99.2217 33.1966 96.9075 37.1068 95.4711 38.7959C95.2317 39.0752 94.4204 38.889 94.1411 38.7959C91.4811 37.5856 91.6274 37.559 91.8535 37.2398C95.644 31.7735 93.0106 28.0495 94.0613 27.9298C95.3041 27.8688 96.5499 27.9133 97.7853 28.0628C98.9424 28.0894 98.7961 28.1559 99.2217 30.7494Z\"\n fill=\"#84D492\"\n />\n <path\n d=\"M96.8537 190.843C96.9707 191.301 96.9339 191.785 96.7488 192.22C96.5638 192.655 96.2408 193.017 95.8296 193.25C94.7359 193.937 93.5113 194.388 92.2336 194.576C90.956 194.764 89.6532 194.684 88.4082 194.341C88.1277 194.244 87.8791 194.072 87.6894 193.844C87.4997 193.616 87.3762 193.34 87.3323 193.047C87.2884 192.753 87.3258 192.454 87.4405 192.18C87.5552 191.906 87.7427 191.669 87.9826 191.495C88.6652 190.863 89.4914 190.406 90.3899 190.165C90.5362 190.165 90.6293 190.098 90.6692 190.165C90.7091 190.231 90.8687 190.949 90.9884 191.215C91.1081 191.481 91.1879 191.535 91.4007 191.481C91.6135 191.428 91.6401 191.388 91.5736 190.963C91.2943 189.114 90.2436 184.712 89.1796 177.543C89.1796 177.304 89.4456 177.25 90.6825 176.758C90.7756 177.29 92.5578 190.776 92.5844 190.909C92.5817 190.974 92.5934 191.039 92.6187 191.099C92.644 191.159 92.6823 191.212 92.7307 191.255C92.8163 191.301 92.9157 191.312 93.0094 191.287C93.103 191.263 93.1839 191.204 93.2361 191.122C93.2994 190.681 93.2994 190.233 93.2361 189.792C93.2361 189.713 93.3292 189.686 93.4489 189.686C94.9784 189.699 96.4547 189.912 96.8537 190.843Z\"\n fill=\"white\"\n />\n <path\n d=\"M94.2075 165.413C96.1759 165.161 96.3754 166.451 95.6572 166.743C94.5405 167.294 93.3551 167.692 92.1327 167.927C88.5683 168.366 81.7587 168.632 78.8327 170.321C78.7355 170.371 78.6582 170.452 78.6138 170.552C78.5693 170.652 78.5603 170.764 78.5883 170.87C78.6162 170.975 78.6795 171.068 78.7675 171.133C78.8555 171.197 78.9629 171.23 79.0721 171.225C80.0601 171.031 81.0765 171.031 82.0646 171.225C83.5565 171.33 85.0553 171.267 86.5334 171.039C88.4695 170.94 90.4094 170.94 92.3455 171.039C93.1435 171.039 93.875 170.733 94.141 171.039C95.471 172.715 90.5234 173.101 88.5683 173.367C87.3997 173.756 86.1664 173.914 84.9374 173.832C83.2661 173.882 81.6119 174.183 80.0297 174.723C79.2982 174.963 79.5509 175.628 80.0297 175.654C81.772 175.734 82.5833 174.883 85.1103 174.989C87.6373 175.096 87.2915 174.63 90.8559 174.244C91.4145 174.244 91.5076 175.042 90.8559 175.428C89.1801 176.479 87.9432 176.452 85.1236 176.958C84.3655 177.091 84.432 177.41 81.5193 178.155C80.0297 178.527 78.0081 180.19 75.521 180.735C72.3024 181.426 72.5152 182.065 69.5759 182.065C66.6366 182.065 66.1578 182.756 64.1495 183.794C63.7505 183.993 63.8303 183.914 62.4205 181.639C61.423 180.017 61.4097 180.11 61.6225 179.924C62.2128 179.311 62.5808 178.518 62.6676 177.672C62.7544 176.826 62.555 175.975 62.1013 175.255C60.492 172.595 59.4413 175.628 67.541 166.89C70.9059 163.232 71.9566 161.822 74.4836 160.931C78.2209 159.601 79.0322 159.056 79.8036 159.082C81.7085 159.271 83.6253 159.306 85.5359 159.189C86.8659 158.976 88.0895 159.628 90.2175 159.761C92.1061 159.88 90.9224 161.383 86.9723 161.184C85.2433 161.104 84.5251 161.663 82.6498 161.57C79.4445 161.423 76.1461 163.591 75.9067 164.589C75.6673 165.586 76.5052 166.185 77.3032 166.225C82.9481 166.244 88.5903 165.973 94.2075 165.413ZM76.2126 176.559C76.2126 176 76.0796 175.455 76.1328 175.136C76.4387 173.114 74.3905 172.848 75.0555 171.451C75.3431 170.862 75.4298 170.194 75.3026 169.551C75.1753 168.907 74.841 168.323 74.3506 167.887C74.0888 167.605 73.8962 167.266 73.7877 166.897C73.6792 166.527 73.6579 166.138 73.7255 165.759C73.5792 162.634 71.8901 162.501 72.1561 163.764C72.3337 164.14 72.459 164.538 72.5285 164.948C72.6349 166.278 72.3689 167.262 73.0339 168.007C75.8934 171.239 72.3689 171.518 74.3639 173.513C75.6141 174.776 74.6299 175.082 75.2816 176.692C75.4013 177.011 76.1594 177.117 76.2126 176.559Z\"\n fill=\"#C7AE8D\"\n />\n <path\n d=\"M93.0369 159.931C93.3029 163.549 93.4758 164.32 92.8374 164.333C86.8923 164.52 83.8067 165.437 83.5274 164.693C82.9555 163.017 82.7427 162.551 83.3146 162.591C84.6446 162.684 84.6446 162.259 87.2248 162.299C89.805 162.338 92.5448 161.913 92.3054 159.984L93.0369 159.931Z\"\n fill=\"#FFF59E\"\n />\n <path\n d=\"M93.0369 159.93H92.332C92.2993 159.711 92.2413 159.497 92.1591 159.292C91.9197 158.707 90.9887 158.547 89.9114 158.454C88.076 158.294 87.0386 157.683 85.5357 157.895C84.8973 157.988 81.7053 158.228 81.7186 157.589C81.7186 157.35 81.7186 157.483 81.5723 156.552C88.1292 158.321 92.7443 154.344 92.7842 155.222C92.864 157.177 92.9571 158.72 93.0369 159.93Z\"\n fill=\"#FFF59E\"\n />\n <path\n d=\"M91.9196 147.457C91.9196 148.135 92.3851 151.899 92.3718 152.059C92.3718 152.963 91.1083 151.314 87.7833 152.152C86.8259 152.267 85.8757 152.436 84.9371 152.657C83.2613 153.056 83.7002 152.444 81.253 153.881C81.0668 153.987 81.0136 154.32 80.8673 153.748C80.721 153.176 80.5082 151.686 79.9629 149.08C79.9629 148.787 79.9629 148.747 80.056 148.694C81.9579 149.931 84.8573 149.505 85.8016 149.412C91.5339 148.774 91.8132 145.888 91.9196 147.457Z\"\n fill=\"white\"\n />\n <path\n d=\"M90.2173 152.668C92.199 152.828 92.6645 153.905 92.2655 154.171C90.8147 155.094 89.1965 155.721 87.5032 156.018C85.8099 156.314 84.0748 156.274 82.3969 155.9C81.9181 155.821 81.4792 155.621 81.4925 154.996C81.5058 154.371 82.6496 153.919 82.9688 153.772C84.0175 153.507 85.0844 153.321 86.1608 153.214C87.4866 152.872 88.8483 152.689 90.2173 152.668Z\"\n fill=\"#FFF59E\"\n />\n <path\n d=\"M89.3924 143.653C91.5736 144.052 92.0524 145.687 89.951 146.964C88.488 147.855 86.9984 148.507 83.1281 148.587C82.5705 148.624 82.0121 148.53 81.4972 148.313C80.9823 148.096 80.5252 147.761 80.1622 147.337C80.0074 147.008 79.9691 146.637 80.0537 146.284C80.1384 145.931 80.3408 145.617 80.6277 145.395C81.9002 144.538 83.3303 143.943 84.835 143.643C86.3397 143.344 87.8889 143.347 89.3924 143.653Z\"\n fill=\"white\"\n />\n <path\n d=\"M86.5993 207.067C87.9293 212.587 83.261 213.424 80.6276 215.127C79.2976 215.951 79.3774 216.071 79.0715 216.084C77.6148 216.373 76.2252 216.932 74.9751 217.734C73.7515 218.505 73.8712 217.813 70.5196 218.798C69.4689 219.117 70.0142 218.798 73.6983 215.366C75.1613 214.036 74.2702 212.001 75.6667 210.365C76.478 209.421 74.3367 207.705 73.5653 212.799C73.3658 214.129 72.7274 214.621 70.5063 216.683C67.8463 219.064 67.1015 219.024 63.8563 219.981C62.0048 220.666 60.0112 220.877 58.0575 220.593C57.2196 220.593 58.5762 220.407 59.2412 216.922C59.7599 214.196 60.3318 214.528 60.4914 213.557C60.5186 213.45 60.5074 213.336 60.4597 213.235C60.4121 213.135 60.331 213.054 60.2303 213.007C60.1297 212.96 60.0157 212.949 59.9081 212.977C59.8004 213.004 59.7057 213.069 59.6402 213.158C57.3659 216.271 59.0683 217.069 56.2354 220.367C55.7433 220.939 48.5613 222.335 47.1781 221.418C45.7949 220.5 44.8772 220.34 44.5979 218.611C44.2122 216.178 44.4649 215.779 43.7866 215.592C42.1773 215.153 44.0792 220.633 43.7866 220.606C40.7808 220.287 38.9986 215.872 38.2937 216.616C38.1414 216.775 38.0499 216.981 38.0353 217.2C38.0207 217.419 38.084 217.637 38.2139 217.813C41.2995 221.657 41.8714 220.886 42.962 221.724C41.7384 222.349 32.5481 224.384 28.9305 222.429C28.0936 222.144 27.3291 221.68 26.6904 221.069C26.0517 220.458 25.5544 219.714 25.2331 218.891C25.1404 218.575 25.0109 218.272 24.8474 217.986C24.3154 217.321 23.7036 217.76 23.8499 218.439C25.1799 224.463 32.7609 223.466 24.8873 224.064C18.1708 223.971 19.5673 225.767 14.6463 221.936C12.9971 220.606 12.6114 218.026 13.037 215.712C13.4528 214.673 13.782 213.6 14.0212 212.507C14.2606 211.616 14.3537 212.094 16.6812 212.227C17.5723 212.227 18.0112 211.895 18.9688 212.068C19.9264 212.241 22.1076 211.243 25.6188 211.961C26.0976 212.055 30.9388 211.961 31.0186 211.961C37.6686 211.828 44.3186 209.687 49.7849 208.277C53.0248 207.507 56.3065 206.926 59.6136 206.535C61.0766 206.163 82.2236 200.869 83.5536 201.72C83.9038 202.987 84.4855 204.177 85.2693 205.232C85.7738 205.797 86.2194 206.412 86.5993 207.067Z\"\n fill=\"#FF8865\"\n fillOpacity=\"0.91\"\n />\n <path\n d=\"M85.1101 142.457C85.2697 142.869 84.618 142.629 83.5806 142.949C79.3246 144.279 78.7261 145.702 78.6197 146.141C78.3803 147.191 78.9788 148.282 78.9256 148.668C78.8192 149.319 78.4468 149.12 76.1459 150.197C74.9356 150.769 76.3188 150.064 74.2972 143.401C73.8317 141.845 73.9248 141.246 73.3662 138.679C73.2332 138.014 73.2066 138.187 74.7893 137.708C76.3795 137.154 78.006 136.71 79.6571 136.378C80.1024 136.357 80.5463 136.312 80.9871 136.245C83.82 136.312 82.2639 134.982 85.1101 142.457Z\"\n fill=\"#FFF59E\"\n />\n <path\n d=\"M81.612 191.399C82.8622 195.709 83.5006 197.065 83.4075 199.379C83.4075 200.709 83.607 201.029 82.676 200.989C76.9969 201.255 37.6954 210.405 40.2091 209.807C28.0795 212.719 26.6032 210.418 20.0197 211.336C19.3015 211.429 18.1444 211.336 17.8385 211.336C16.7592 211.558 15.6461 211.558 14.5667 211.336C14.181 211.336 14.3007 211.256 14.5667 210.006C18.0114 210.631 16.8543 209.7 23.2649 208.902C29.9149 208.078 27.7736 208.45 35.9664 204.034C40.9938 201.374 39.3579 201.64 43.9464 199.073C47.1517 197.278 44.904 197.943 51.687 196.679C59.5606 195.216 62.7925 193.7 69.5755 192.357C74.4832 191.399 72.3818 192.104 80.3618 190.841C81.3859 190.575 81.3593 190.508 81.612 191.399Z\"\n fill=\"#FFF59E\"\n />\n <path\n d=\"M82.37 164.681C82.6227 165.479 78.38 165.253 78.2603 164.947C78.1987 164.829 78.1626 164.699 78.1542 164.566C78.1459 164.432 78.1655 164.299 78.2118 164.174C78.2582 164.048 78.3302 163.934 78.4233 163.838C78.5164 163.743 78.6285 163.667 78.7524 163.617C82.6094 161.862 81.7183 162.553 82.37 164.681Z\"\n fill=\"#92CAD9\"\n />\n <path\n d=\"M81.6251 131.685C81.6251 133.667 83.1945 135.435 82.2236 135.555C80.5586 135.535 78.9 135.763 77.3026 136.233C76.2853 136.634 75.2351 136.946 74.1638 137.164C73.8838 137.232 73.6181 137.349 73.3791 137.51C72.6609 137.896 73.0865 134.145 72.2486 133.627C70.7324 132.682 72.2486 136.287 71.5304 136.646C70.5329 137.031 72.1555 136.393 65.572 138.534C64.0824 139.026 62.6726 139.452 61.3426 139.864C47.3244 143.854 41.2995 142.298 33.9313 141.647C23.7036 140.729 27.5074 141.899 23.5972 134.571C23.1317 133.706 22.2672 134.145 22.6529 135.023C23.5573 137.018 26.204 142.312 24.6878 141.819C19.9929 140.29 16.5482 142.059 9.63221 142.538C7.06531 142.724 3.47431 144.732 2.07781 145.384C1.77191 143.628 2.84921 137.404 4.80431 133.201C6.36041 129.823 9.24651 128.785 13.0902 125.367C14.0744 124.49 21.0702 124.17 23.2514 124.609C24.3686 124.822 25.5257 124.795 26.6695 124.902C27.5606 124.982 31.4442 125.939 32.3087 126.152C33.4525 126.431 38.7858 137.617 47.7766 139.452C50.2932 139.97 52.8801 140.051 55.4241 139.691C60.7441 138.268 61.1564 134.943 61.6219 130.687C62.247 124.982 61.1431 124.41 62.0608 124.41C64.7208 124.41 66.5296 123.266 75.0815 121.657C76.0657 121.47 78.207 124.317 78.8321 125.647C80.1306 127.468 81.0778 129.516 81.6251 131.685Z\"\n fill=\"#FF8865\"\n fillOpacity=\"0.91\"\n />\n <path\n d=\"M80.9469 187.636C81.2528 189.778 81.3459 189.804 80.9469 189.884C70.666 191.786 77.582 189.419 64.8406 192.384C64.2554 192.531 54.9321 195.537 51.4475 195.909C48.6013 196.228 48.2156 196.773 47.6836 196.64C47.6836 196.64 60.3186 187.676 60.7442 187.889C61.9146 188.488 63.3111 187.37 64.3485 186.559C64.8539 186.16 65.2662 185.641 64.9204 185.083C64.5746 184.524 64.6278 184.697 66.676 183.753C68.006 183.088 68.139 183.606 69.1498 183.46C74.3634 182.702 69.469 183.646 76.6111 181.731C80.9469 180.481 79.4307 177.169 80.9469 187.636Z\"\n fill=\"#FF8865\"\n fillOpacity=\"0.91\"\n />\n <path\n d=\"M79.7238 157.897C78.713 157.711 77.3032 159.001 77.3298 158.124C77.3298 156.794 77.0771 157.02 75.6673 151.314C75.6008 151.048 75.5077 151.075 78.6332 149.824C79.245 149.572 79.2051 149.678 79.644 151.793C81.0405 158.443 81.1203 157.897 79.7238 157.897Z\"\n fill=\"#FF8865\"\n fillOpacity=\"0.91\"\n />\n <path\n d=\"M78.1934 3.02034C79.284 7.38274 78.9914 5.37444 75.5334 6.30544C72.0754 7.23644 72.5808 8.40684 70.2134 12.317C69.8144 12.982 69.841 12.1973 68.0987 10.987C66.3564 9.77674 66.649 9.13833 66.5293 8.85904C67.0347 7.71524 66.2899 7.03694 69.1893 4.07104C70.4262 2.74104 70.6656 3.33954 71.8493 2.66124C74.2699 1.19824 74.629 2.14254 77.289 1.98294C77.7678 1.88984 77.9673 2.07604 78.1934 3.02034Z\"\n fill=\"#FFD152\"\n />\n <path\n d=\"M76.2254 158.749C76.2254 159.267 74.1372 159.533 72.7009 160.464C69.7748 162.393 70.1473 161.249 64.7209 163.723C57.5123 166.702 43.6271 168.019 42.8557 167.926C39.1849 167.54 31.0452 168.006 30.0211 167.926C28.3054 158.682 29.1034 158.057 28.3985 155.783C28.2788 155.384 28.3985 155.144 29.0502 155.264C30.8324 155.557 25.0602 154.892 43.893 155.543C45.9469 155.763 48.022 155.678 50.051 155.291C76.518 151.035 74.4564 147.976 74.4298 150.383C74.4032 152.79 75.72 155.038 76.2254 158.749Z\"\n fill=\"#FF8865\"\n fillOpacity=\"0.91\"\n />\n <path\n d=\"M75.4144 91.8354C77.2631 94.8678 73.2066 98.4854 70.4136 97.1554C69.722 96.8229 69.19 97.0357 69.3496 97.714C69.9215 100.055 72.9805 94.522 68.3787 108.554C68.259 108.953 67.0487 108.633 66.3837 109.644C65.6256 110.974 64.7212 109.485 63.3114 110.389C62.54 110.881 62.407 110.881 62.1543 110.695C61.756 110.378 61.2962 110.147 60.804 110.016C60.3119 109.886 59.798 109.859 59.2948 109.937C58.2308 110.588 58.2973 109.192 56.8476 109.125C55.3979 109.059 55.2782 109.298 54.9989 108.833C53.6689 106.718 52.1261 108.128 51.767 107.024C51.0488 104.763 49.107 106.412 48.8942 103.739C48.3356 97.0091 47.2583 99.0839 47.5642 95.6392C47.9444 94.2283 47.8652 92.7329 47.3381 91.3699C46.6066 89.7872 47.0056 89.0291 46.7396 85.6243C46.7396 84.8662 45.9815 84.2943 46.5135 84.2943C49.1735 84.2943 54.0147 84.1746 54.2541 84.7997C54.6797 85.9568 54.959 87.0607 56.2624 87.4597C56.8875 87.6592 56.6747 89.202 58.2973 90.6118C58.9551 91.1736 59.7382 91.5691 60.5807 91.7651C61.4232 91.9611 62.3005 91.9518 63.1387 91.738C63.9769 91.5243 64.7514 91.1122 65.3972 90.5367C66.0429 89.9611 66.5409 89.2388 66.8492 88.4306C67.2482 87.5794 67.2349 86.409 67.5807 85.9435C68.4186 84.8662 70.4668 84.3076 70.8126 85.9435C71.7303 90.2793 74.0711 89.6276 75.4144 91.8354ZM68.2989 98.0332C68.6447 97.7007 68.6314 96.7032 67.727 96.9958C67.0354 97.1554 67.1152 97.6209 66.397 97.5012C65.1867 97.3017 64.8941 96.6766 65.067 95.9451C65.2931 94.9609 65.998 95.1338 66.5566 94.7614C66.8625 94.5619 66.796 93.7772 66.2374 93.8038C65.8972 93.8091 65.5617 93.884 65.2517 94.0241C64.9416 94.1642 64.6636 94.3664 64.4348 94.6183C64.206 94.8701 64.0313 95.1662 63.9216 95.4882C63.8118 95.8103 63.7693 96.1514 63.7966 96.4906C63.824 96.8297 63.9206 97.1596 64.0806 97.4599C64.2405 97.7602 64.4604 98.0245 64.7266 98.2364C64.9928 98.4483 65.2996 98.6034 65.6281 98.692C65.9566 98.7806 66.2998 98.8008 66.6364 98.7514C67.3147 98.9509 67.8068 98.4854 68.2989 98.0332ZM62.8459 106.612C64.7212 105.96 70.8259 100.8 68.1659 100.707C67.6538 100.718 67.1429 100.762 66.6364 100.84C63.641 100.433 60.7334 99.5346 58.0313 98.1795C58.7096 97.7805 59.0022 97.7273 58.8559 97.1687C58.4968 95.8387 55.2782 98.0066 55.8767 100.201C55.9112 100.304 55.9772 100.394 56.0655 100.458C56.1539 100.522 56.26 100.556 56.3688 100.556C56.4777 100.556 56.5838 100.522 56.6722 100.458C56.7605 100.394 56.8265 100.304 56.8609 100.201C57.6057 96.5968 58.4968 108.141 62.8459 106.612Z\"\n fill=\"#C7AE8D\"\n />\n <path\n d=\"M74.2304 148.374C74.2304 148.573 74.2304 148.733 73.9644 148.799C72.2487 149.172 71.9428 149.93 68.6444 150.861C66.3845 151.437 64.0931 151.881 61.7816 152.191C58.6295 152.656 56.8872 153.614 46.2472 154.997C27.3479 153.84 28.2523 155.37 28.0927 154.119C26.5632 143.094 28.4784 153.082 26.377 141.538C26.2307 140.686 41.4725 145.062 55.4242 142.11C56.4084 141.897 56.8872 141.617 61.5289 140.327C71.331 137.667 71.7566 136.869 71.996 137.867C71.9694 138.106 74.2304 148.347 74.2304 148.374Z\"\n fill=\"#FFF59E\"\n />\n <path\n d=\"M74.0972 73.3773C74.177 74.7073 74.5095 78.6973 73.911 78.9633C71.0648 80.2268 71.1446 84.1104 70.5727 83.8843C70.0597 83.7171 69.5154 83.6685 68.9809 83.7422C68.4464 83.8159 67.9356 84.01 67.4871 84.3099C67.1014 84.5227 67.2344 83.7114 66.7556 82.8735C66.4143 82.1266 65.9001 81.4716 65.2555 80.9628C64.6109 80.4539 63.8545 80.1059 63.0487 79.9473C62.243 79.7888 61.411 79.8243 60.6217 80.051C59.8324 80.2776 59.1084 80.689 58.5096 81.2509C55.0117 84.3631 57.6717 88.9117 55.2511 84.0572C54.3866 82.3282 50.1705 83.2991 45.4623 82.8868C43.5347 82.8834 41.6082 82.9766 39.6901 83.1661C39.4241 83.1661 39.6901 83.1661 38.0941 82.3415C36.0592 81.2908 34.3967 82.7272 34.1041 82.0622C32.2554 77.7131 32.4815 78.6042 32.0426 76.2501C31.6392 73.8115 31.8339 71.3114 32.61 68.9646C33.3861 66.6178 34.7203 64.4946 36.4981 62.7772C36.8705 62.3915 36.8572 63.123 38.6394 64.5062C43.9594 68.6026 62.7124 69.0016 69.8545 64.054C71.0781 63.2161 73.2061 69.241 73.8445 71.2892C74.0307 71.9542 72.714 71.0897 71.5702 73.4704C71.4372 73.7231 71.5702 74.1221 71.5702 74.4413C71.5702 74.7605 72.4613 74.6408 72.6342 74.2152C72.8071 73.7896 73.3657 73.4704 73.7913 73.1778C74.0041 73.0315 74.0839 73.098 74.0972 73.3773ZM64.1887 74.6142C64.5611 73.6699 63.1114 72.6325 62.1006 72.566C58.35 72.3266 55.9294 74.9467 55.9028 77.3008C55.9028 78.6308 56.887 78.6308 56.9535 77.8328C57.1596 76.7684 57.7793 75.8291 58.6768 75.2208C59.5743 74.6125 60.6764 74.3848 61.7415 74.5876C63.4838 74.8403 63.8429 75.492 64.1887 74.6142ZM47.9095 73.4305C47.9095 72.3931 46.5795 72.4197 46.5795 73.5502C46.5928 74.4812 47.8962 74.2551 47.9095 73.4305ZM47.1514 70.4247C47.976 70.4247 48.109 69.0947 47.1514 69.0947C46.1938 69.0947 46.4066 70.4114 47.1514 70.4247ZM46.8588 81.0647C46.8631 80.9879 46.8523 80.9109 46.8269 80.8382C46.8016 80.7656 46.7621 80.6986 46.7109 80.6412C46.6596 80.5837 46.5976 80.537 46.5282 80.5035C46.4589 80.4701 46.3837 80.4506 46.3068 80.4463C46.23 80.4419 46.153 80.4527 46.0803 80.4781C46.0077 80.5035 45.9407 80.5429 45.8833 80.5941C45.8258 80.6454 45.7791 80.7075 45.7456 80.7768C45.7122 80.8461 45.6927 80.9214 45.6884 80.9982C45.7017 81.7829 46.8455 81.9159 46.8588 81.0248V81.0647ZM44.7441 77.4604C45.3825 78.0456 45.6352 76.9816 45.6751 76.8752C45.5155 75.4787 43.3742 76.1836 44.7441 77.4205V77.4604ZM44.1323 72.8719C44.1318 72.7086 44.0725 72.551 43.9651 72.4279C43.8578 72.3049 43.7097 72.2247 43.548 72.202C43.3863 72.1794 43.2219 72.2158 43.0849 72.3047C42.9479 72.3935 42.8475 72.5288 42.8023 72.6857C42.7644 72.7845 42.7497 72.8906 42.7593 72.9959C42.7689 73.1012 42.8026 73.203 42.8577 73.2932C42.9127 73.3835 42.9878 73.46 43.077 73.5167C43.1663 73.5735 43.2673 73.609 43.3725 73.6206C43.4776 73.6321 43.584 73.6194 43.6834 73.5834C43.7829 73.5475 43.8727 73.4891 43.9461 73.413C44.0195 73.3368 44.0744 73.2448 44.1067 73.1441C44.139 73.0434 44.1477 72.9366 44.1323 72.832V72.8719ZM43.0151 79.9741C43.0151 79.7872 42.9408 79.6079 42.8086 79.4757C42.6764 79.3435 42.4971 79.2692 42.3102 79.2692C42.1232 79.2692 41.9439 79.3435 41.8117 79.4757C41.6795 79.6079 41.6053 79.7872 41.6053 79.9741C41.592 80.8386 42.9752 80.6923 43.0151 79.9342V79.9741ZM42.8954 69.6932C43.0717 69.6932 43.2409 69.6231 43.3656 69.4984C43.4903 69.3737 43.5604 69.2046 43.5604 69.0282C43.5604 68.8518 43.4903 68.6827 43.3656 68.558C43.2409 68.4333 43.0717 68.3632 42.8954 68.3632C42.7516 68.3992 42.6239 68.4823 42.5327 68.5992C42.4416 68.716 42.392 68.86 42.392 69.0083C42.392 69.1565 42.4416 69.3005 42.5327 69.4174C42.6239 69.5342 42.7516 69.6173 42.8954 69.6533V69.6932ZM40.7541 75.7846C40.784 75.6082 40.7427 75.4272 40.6392 75.2813C40.5357 75.1354 40.3785 75.0365 40.2021 75.0066C40.1148 74.9917 40.0254 74.9942 39.939 75.0139C39.8527 75.0336 39.771 75.0701 39.6988 75.1214C39.5529 75.2249 39.454 75.3821 39.4241 75.5585C39.3975 76.4629 40.7142 76.7289 40.7541 75.7447V75.7846ZM38.6128 67.6184C38.6128 68.6957 39.8497 68.4829 39.8364 67.6982C39.8231 66.6475 38.5729 66.6076 38.6128 67.5785V67.6184ZM39.6103 71.9675C39.6103 70.837 38.4 70.8636 38.4 71.9675C38.3902 72.0547 38.3994 72.143 38.4268 72.2264C38.4542 72.3097 38.4993 72.3862 38.5589 72.4506C38.6184 72.5151 38.6912 72.5659 38.7722 72.5997C38.8531 72.6336 38.9405 72.6496 39.0282 72.6467C39.1159 72.6438 39.2019 72.6221 39.2805 72.583C39.3591 72.5439 39.4283 72.4884 39.4835 72.4202C39.5387 72.352 39.5786 72.2727 39.6005 72.1877C39.6224 72.1027 39.6257 72.014 39.6103 71.9276V71.9675ZM38.0143 79.2426C38.4 79.2426 38.5463 79.083 38.5463 78.6707C38.5463 77.8328 37.4557 77.7929 37.4557 78.6707C37.4557 79.1229 37.602 79.216 38.0143 79.2027V79.2426ZM36.2454 65.8229C36.2454 65.384 36.1124 65.2244 35.7533 65.2111C35.3942 65.1978 35.0883 65.384 35.0883 65.8761C35.075 66.7938 36.2055 66.8869 36.2454 65.8229ZM34.2504 69.9459C34.2504 70.8769 35.3011 70.4912 35.2878 69.9459C35.2612 69.1612 34.1972 68.9883 34.2504 69.9592V69.9459ZM35.1149 73.8029C35.1201 73.7261 35.1102 73.6489 35.0856 73.5759C35.061 73.5029 35.0223 73.4355 34.9717 73.3774C34.921 73.3194 34.8595 73.2719 34.7905 73.2376C34.7215 73.2034 34.6464 73.183 34.5696 73.1778C34.4927 73.1726 34.4156 73.1825 34.3426 73.2071C34.2696 73.2317 34.2021 73.2704 34.1441 73.321C34.0268 73.4233 33.955 73.5679 33.9445 73.7231C33.9445 74.1886 34.1174 74.4812 34.5031 74.4945C34.8888 74.5078 35.0883 74.3349 35.1149 73.8029ZM34.277 78.551C34.6361 78.4047 34.6361 78.0855 34.5696 77.7397C34.5031 77.3939 34.3701 77.1944 33.9711 77.2343C33.0667 77.2609 33.5322 78.817 34.277 78.4978V78.551Z\"\n fill=\"#C7AE8D\"\n />\n <path\n d=\"M68.0462 117.52L74.6297 120.965C74.3903 121.044 62.1543 123.97 61.9282 124.024C61.4228 124.13 61.7287 123.571 61.5159 121.004C61.2765 117.879 60.2923 118.105 63.0321 118.344C65.1468 118.544 65.5857 116.868 66.3305 117.134C66.7561 117.334 67.2482 117.028 68.0462 117.52Z\"\n fill=\"#FFF59E\"\n />\n <path\n d=\"M70.3737 61.1006C70.9988 62.7099 70.6264 62.271 68.6049 63.5611C65.6789 65.4098 60.1061 66.5802 53.4429 66.7664C48.9994 66.9357 44.5706 66.1605 40.4488 64.4921C39.674 64.1863 38.9882 63.6914 38.4539 63.0526C37.9195 62.4137 37.5537 61.6512 37.3898 60.8346C37.2169 59.5046 37.8021 59.2386 39.2651 53.8787C39.8902 51.5379 38.8262 54.3309 47.8968 58.8396C50.5568 60.1696 60.9839 63.3084 68.6846 58.6401C69.4959 58.1081 69.2299 58.0948 70.3737 61.1006Z\"\n fill=\"#FFF59E\"\n />\n <path\n d=\"M67.048 110.737C68.6307 108.463 70.5725 112.227 69.5351 113.836C69.2558 114.262 68.4046 113.583 68.2849 114.727C68.0455 117.254 65.5185 114.82 64.9599 116.057C64.2417 117.56 62.5127 117.041 61.4886 116.975C60.4645 116.908 60.5177 116.124 59.5202 116.722C59.0017 116.954 58.4266 117.028 57.8662 116.936C57.3059 116.844 56.7849 116.589 56.3681 116.203C55.8361 115.552 55.0381 115.725 54.147 115.751C52.019 115.831 52.5643 113.889 50.8486 113.889C50.4175 113.932 49.9837 113.839 49.6089 113.622C49.2341 113.404 48.9372 113.074 48.7605 112.679C48.3748 111.854 47.8827 112.187 46.7788 111.775C44.8636 111.043 45.9542 109.913 44.571 108.769C42.6425 107.173 43.7331 105.444 43.0548 103.954C41.2061 99.871 43.7331 100.908 42.044 96.4928C41.0066 93.753 42.4962 89.1246 40.8869 85.4804C40.3017 84.1504 41.113 84.5228 43.906 84.1504C46.0207 83.911 45.7015 88.1404 45.6749 88.1404C45.6749 92.8486 46.9251 91.6649 46.5527 94.0855C46.0554 96.03 46.2578 98.0874 47.1246 99.8976C47.896 101.613 47.2177 102.478 47.9359 104.938C48.6541 107.399 50.1836 106.162 50.689 107.598C51.0348 108.596 51.8062 108.596 52.8569 108.729C54.4795 108.928 53.6283 110.445 54.9849 110.378C55.7829 110.378 56.8735 109.886 57.6449 110.937C58.8552 112.785 59.2808 109.607 62.0073 111.974C62.4462 112.373 62.9117 112.2 63.7762 111.495C64.4146 110.977 65.1062 111.269 65.7579 111.575C66.4096 111.881 66.649 111.282 67.048 110.737Z\"\n fill=\"#585858\"\n />\n <path\n d=\"M66.6493 51.192C69.0699 58.8129 69.9743 57.044 66.7291 58.9326C61.6618 61.8719 47.8431 61.034 39.8498 52.2826C39.3444 51.724 42.43 44.542 42.7226 43.8504C43.1482 42.8529 43.76 46.8296 52.5513 50.3142C55.2717 51.4633 58.1786 52.1078 61.1298 52.2161C62.271 52.1592 63.408 52.0349 64.5346 51.8437C66.3168 50.926 66.503 50.6733 66.6493 51.192Z\"\n fill=\"#F0F6FF\"\n />\n <path\n d=\"M66.2509 49.8624C66.3839 50.1816 66.2509 50.1284 64.9209 50.7668C58.8295 53.6529 41.9518 45.4468 43.468 41.6563C43.9335 40.4992 45.7955 33.8758 46.128 34.4876C48.5353 38.318 54.8528 40.3662 58.6832 40.6588C64.4421 41.1243 59.9999 34.6339 66.2509 49.8624Z\"\n fill=\"#FFF59E\"\n />\n <path\n d=\"M61.3293 165.639C63.577 165.068 68.2719 162.86 69.7881 162.647C69.6019 163.046 60.0126 173.154 59.587 173.074C55.863 172.422 53.3626 174.71 53.2163 176.851C53.2163 177.423 53.2163 177.463 48.3352 178.9C46.9428 179.387 45.4743 179.622 43.9994 179.591C42.8122 179.881 41.6085 180.098 40.3951 180.243C36.0726 180.097 36.2721 180.735 31.9762 180.629C30.5531 180.629 29.795 181.666 29.6487 180.163C29.1832 175.561 29.0635 175.694 29.4359 175.614C32.7077 174.923 28.8241 168.539 30.5132 168.672H30.6462C39.77 167.807 41.8049 170.56 61.3293 165.639Z\"\n fill=\"#FFF59E\"\n />\n <path\n d=\"M61.6489 37.4796C62.1144 38.5968 62.2075 38.8096 61.9282 38.9825C61.1792 39.5218 60.3047 39.8606 59.3879 39.9667C55.7304 39.8869 47.7903 37.2003 46.5135 33.729C46.3672 33.3566 47.1386 31.7074 47.2583 31.468C48.0195 29.7538 48.6206 27.9729 49.0538 26.148C49.2134 25.6426 49.24 26.5736 52.2857 28.1164C60.1992 32.0532 55.5176 22.9161 61.6489 37.4796Z\"\n fill=\"#F0F6FF\"\n />\n <path\n d=\"M60.5981 125.431C60.8852 128.493 60.6331 131.581 59.8533 134.555C58.6031 138.399 53.057 139.09 53.0171 138.718C43.2416 138.226 40.0762 134.728 34.2242 126.229C28.3722 117.73 27.3348 116.919 27.3348 116.919C26.5368 115.709 31.5243 114.259 33.3464 111.107C34.1976 109.644 34.6764 108.447 35.9399 101.145C36.6448 97.1554 35.8069 97.1554 36.7911 97.4347C37.1768 97.5411 38.4004 98.0598 39.0654 97.2618C39.7304 96.4638 38.5201 96.3308 37.7354 96.2244C36.4054 96.0382 34.437 94.3225 33.3464 91.5428C33.0591 90.7149 32.9636 89.8327 33.0671 88.9626C33.0671 86.9942 32.6947 85.1987 34.7695 83.6426C35.2977 83.3771 35.8807 83.2388 36.4719 83.2388C37.0631 83.2388 37.6461 83.3771 38.1743 83.6426C41.9249 85.6243 39.8102 93.7905 40.8343 96.1579C42.3239 99.6957 40.8343 100.986 41.4195 102.954C41.7843 103.695 42.0439 104.483 42.1909 105.295C42.0963 106.101 42.1874 106.918 42.4571 107.683C42.7268 108.448 43.168 109.142 43.747 109.711C44.5982 110.402 44.0928 112.65 46.8592 113.075C48.2557 113.302 47.6971 114.405 49.3064 114.844C50.9157 115.283 50.9689 115.097 51.2482 115.523C52.7644 117.903 54.9057 116.321 55.7835 117.385C56.3502 117.8 57.0076 118.074 57.7014 118.185C58.3952 118.296 59.1054 118.241 59.7735 118.023C60.4651 117.691 60.0661 117.398 60.5981 125.431ZM38.7861 93.2585C36.5384 91.6625 40.2757 91.5561 39.7038 89.2685C39.0654 86.7681 38.1344 84.5071 35.7138 85.2785C34.3838 85.7174 34.0513 86.4622 34.0912 87.1804C34.1311 87.8986 34.0912 88.2976 34.7296 88.2976C35.368 88.2976 35.2084 87.7257 35.1818 87.2735C35.1552 86.8213 35.4478 86.7016 36.0596 86.4356C37.2699 85.9169 37.8551 87.5528 38.294 88.7498C38.7329 89.9468 38.6132 89.9468 37.7753 90.5719C37.4398 90.7883 37.1744 91.0974 37.0112 91.4617C36.8481 91.8261 36.7942 92.2299 36.8562 92.6243C36.9182 93.0186 37.0933 93.3865 37.3603 93.6833C37.6274 93.98 37.9748 94.1928 38.3605 94.2959C38.4858 94.3083 38.6118 94.2799 38.7197 94.215C38.8276 94.1501 38.9117 94.0521 38.9595 93.9356C39.0073 93.8191 39.0163 93.6903 38.985 93.5683C38.9538 93.4463 38.884 93.3376 38.7861 93.2585Z\"\n fill=\"#C7AE8D\"\n />\n <path\n d=\"M59.1616 185.374C60.332 187.156 61.3561 185.826 54.0943 190.508C50.1043 193.022 43.9331 198.355 29.1701 206.268C26.8692 207.492 21.8285 207.598 21.0571 207.745C19.5056 208.013 17.9695 208.364 16.4553 208.795C11.521 208.676 11.255 205.829 9.97818 201.174C7.91668 193.62 8.20928 198.514 5.98818 185.427C5.98818 185.427 4.93748 179.216 5.61578 179.07C7.22508 178.711 10.6033 177.075 12.851 176.596C22.6132 174.521 20.0197 174.388 26.4968 173.457C28.412 173.191 27.3081 173.271 28.6913 181.677C29.1568 184.536 29.2898 184.337 29.0238 184.496C19.8202 187.462 20.2059 187.316 20.0064 187.542C19.8069 187.768 19.6473 188.38 20.2591 188.486C20.8709 188.593 53.3495 178.604 53.3495 178.777C54.1741 180.466 54.4002 181.238 56.7011 181.703C57.7917 181.916 56.8341 181.796 59.1616 185.374Z\"\n fill=\"#C7AE8D\"\n />\n <path\n d=\"M54.8658 21.7206C57.8716 29.0622 58.3105 27.8918 56.2889 28.4637C54.164 28.2276 52.1446 27.4134 50.4502 26.1096C49.7453 25.6707 49.333 25.0323 49.7054 24.2742C49.7054 24.1545 52.0994 16.7996 52.8974 17.704C53.6217 19.0084 54.2787 20.349 54.8658 21.7206Z\"\n fill=\"#FFF59E\"\n />\n <path\n d=\"M32.0693 181.321C33.3993 181.534 40.1291 180.762 41.2064 180.975C41.2064 180.975 33.7451 183.502 30.9654 183.981C30.0743 184.14 30.3137 184.287 29.9413 181.84C29.9014 181.534 29.7019 181.693 32.0693 181.321Z\"\n fill=\"#FF8865\"\n fillOpacity=\"0.91\"\n />\n <path\n d=\"M29.2769 121.255C32.5886 125.737 31.9369 125.245 31.6576 125.245C28.0945 124.306 24.4445 123.736 20.7649 123.543C11.3485 123.981 14.1149 125.391 18.4906 121.055C21.2304 118.395 20.7383 120.098 25.3002 115.602C25.4066 115.496 25.4598 115.416 25.5263 115.602C25.9918 117.691 26.3642 117.318 29.2769 121.255Z\"\n fill=\"#FFF59E\"\n />\n <path\n d=\"M29.5822 172.927C29.5759 172.993 29.5759 173.06 29.5822 173.126C29.0155 172.681 28.3474 172.382 27.6374 172.257C26.9274 172.131 26.1974 172.183 25.5124 172.408C11.9065 175.068 7.42439 176.93 3.84669 178.3C2.68959 178.752 3.74029 179.165 2.87579 173.539L2.72949 170.879C2.72949 169.23 9.51249 168.299 12.3188 167.022C13.9946 166.25 16.628 166.277 18.3969 166.051C20.1658 165.825 20.1392 165.306 23.012 165.452C24.2622 165.373 28.332 164.934 28.4517 165.665C28.691 168.105 29.0684 170.53 29.5822 172.927Z\"\n fill=\"#FFF59E\"\n />\n <path\n d=\"M28.0796 163.696C28.1311 163.995 28.1622 164.298 28.1727 164.601C27.5375 164.445 26.8782 164.413 26.2309 164.508C24.9082 164.685 23.5697 164.712 22.2409 164.587C18.4504 164.814 20.1129 165.252 16.2559 165.425C15.0581 165.529 13.8706 165.729 12.7048 166.024C8.26262 167.726 8.30252 167.354 5.17702 168.431C1.18702 169.761 3.16872 170.998 2.25102 167.327C2.17122 166.995 0.921025 159.347 1.65252 158.922C8.76802 155.251 14.0614 155.238 15.3781 154.573C18.1445 153.243 23.1852 153.243 26.2974 153.442C27.5476 153.602 27.4279 161.329 28.0796 163.696Z\"\n fill=\"#FF8865\"\n fillOpacity=\"0.91\"\n />\n <path\n d=\"M26.2837 148.655C26.6428 152.725 26.7891 152.778 26.3768 152.738C24.2793 152.558 22.1701 152.558 20.0726 152.738C16.9205 152.805 15.8831 154.068 12.2256 154.521C10.4455 154.874 8.69402 155.359 6.98541 155.97C1.66541 157.447 1.27971 159.508 1.49251 157.433C1.49251 157.433 2.21071 150.783 2.23731 150.783C2.03781 148.708 1.55901 145.583 2.88901 145.463C4.21901 145.344 5.54901 143.349 13.8349 142.803C15.4708 142.697 19.8066 141.181 24.8739 142.59C25.3394 142.71 25.4192 142.763 25.499 143.202C25.9372 144.99 26.2 146.816 26.2837 148.655Z\"\n fill=\"#FFF59E\"\n />\n <path\n d=\"M22.4272 30.3792C23.4465 31.5326 24.034 33.0039 24.0897 34.5421C24.0099 39.5961 25.4197 39.8621 19.5943 40.1547C18.4239 40.2345 19.7672 39.902 18.6766 34.5288C18.3308 32.8663 17.4264 32.5338 16.9875 31.8688C16.0299 30.326 15.2186 30.3792 15.6575 29.8871C18.4106 26.7882 19.2485 26.0035 22.4272 30.3792Z\"\n fill=\"#F8865C\"\n />\n <path\n d=\"M22.4275 58.0542C22.9329 58.6394 22.7467 58.8123 21.9354 61.1398C21.5231 62.3235 21.4965 62.39 21.2837 62.2304C20.3771 61.6629 19.4144 61.1905 18.4109 60.8206C16.376 59.8231 14.248 60.2221 12.0535 60.8206C11.4683 60.9802 11.455 61.0068 11.3353 60.4349C11.1094 59.3193 11.0156 58.181 11.056 57.0434C11.056 55.8597 13.716 54.9553 14.9396 55.075C16.3422 54.789 17.7978 54.9186 19.1279 55.4478C20.458 55.977 21.6047 56.8828 22.4275 58.0542Z\"\n fill=\"#84D492\"\n />\n <path\n d=\"M90.5894 234.652C89.7781 232.95 88.6742 230.077 87.6368 229.199C86.5994 228.321 86.9851 227.284 87.2777 225.888C87.3628 225.022 87.2394 224.149 86.9178 223.342C86.5961 222.534 86.0856 221.816 85.429 221.246C84.5118 220.631 83.4947 220.181 82.4232 219.916C82.7291 219.091 81.6917 218.16 81.7981 216.232C81.7981 215.806 81.4922 216.085 81.1597 216.338C79.4307 217.668 79.0982 216.644 75.9993 218.386C74.8023 219.065 74.6693 219.184 74.789 219.637C74.9087 220.089 74.922 220.355 74.9885 220.661L73.8447 220.98C73.7986 220.578 73.7986 220.172 73.8447 219.77C73.9378 218.626 70.5197 220.488 68.405 220.089C67.0022 220.192 65.6266 220.529 64.3352 221.086C64.1091 221.166 64.0426 221.166 64.2155 222.496L63.1382 222.616V221.778C63.1382 221.046 62.3535 221.964 59.6802 221.778C55.3976 221.552 56.834 221.538 55.0385 222.004C54.6395 222.11 54.7592 222.27 54.9454 223.494L53.8016 223.627C53.8016 223.374 53.8016 223.095 53.7085 222.789C53.6154 221.738 53.1233 223.001 50.4899 222.789C49.0801 222.709 48.0826 223.081 46.726 222.496C45.9881 222.259 45.2073 222.187 44.4384 222.283C43.6271 222.283 43.6404 223.613 43.8 224.73L42.6961 224.863C42.5365 222.922 42.5897 223.121 42.0178 223.241C38.7194 223.986 38.6263 223.613 37.2298 224.026C32.5349 225.435 31.9098 223.001 32.5881 226.074L31.5108 226.207C31.1118 223.148 32.7078 224.983 22.9456 225.223C22.3338 225.223 22.4269 225.369 22.52 226.553C22.4935 226.831 22.4935 227.112 22.52 227.39L21.5624 227.537C21.4811 226.87 21.4367 226.2 21.4294 225.528C21.4294 225.05 18.3704 225.981 17.4394 225.183C17.1601 224.943 17.3064 226.978 17.3463 227.324C17.5458 229.186 17.732 229.585 18.1443 229.572C14.7927 233.149 14.7927 231.806 14.5666 235.184C14.7519 236.536 15.204 237.838 15.8966 239.015C16.4951 240.345 16.1227 243.51 15.6838 245.665C15.2449 247.819 14.4336 252.142 14.4336 252.142C17.0936 252.953 27.3878 251.184 34.3836 251.995C41.3794 252.807 52.9371 251.557 58.0842 250.745C63.2313 249.934 73.6851 250.227 80.3218 250.958C86.9585 251.69 95.9094 249.442 95.9094 249.442C95.9094 249.442 91.414 236.341 90.5894 234.652Z\"\n fill=\"#D4F2E2\"\n />\n <path\n d=\"M16.4019 94.2965C17.2664 95.3472 17.7319 95.7595 17.1467 95.7728C11.4277 95.9856 10.0711 90.905 11.1218 87.2874C11.8267 84.8003 11.3213 83.7629 16.2556 85.1328C16.6546 85.2392 16.4019 85.4786 16.0694 87.7928C15.9497 88.6972 15.6172 93.3522 16.4019 94.2965Z\"\n fill=\"#92CAD9\"\n />\n <path\n d=\"M189.808 74.9463C189.969 75.5012 190.266 76.0073 190.671 76.4195C191.076 76.8317 191.577 77.1371 192.129 77.3084C192.681 77.4797 193.267 77.5115 193.834 77.401C194.402 77.2905 194.933 77.0412 195.38 76.6753C195.38 76.6753 195.46 77.7925 197.468 78.8166C199.477 79.8407 200.887 80.5722 201.352 79.854C201.393 80.4658 201.669 81.0379 202.123 81.45C202.948 82.3544 203.959 83.3386 204.996 82.9529C204.889 83.6492 205.005 84.3618 205.329 84.9878C205.783 86.1001 206.555 87.0533 207.55 87.7276C207.55 87.7276 207.244 88.2197 207.55 89.9487C207.743 91.3403 208.388 92.63 209.385 93.6195C209.385 93.6195 211.965 91.2255 214.293 92.7151C216.62 94.2047 217.206 95.8938 216.953 96.612C216.452 98.9381 215.315 101.079 213.668 102.796C213.442 103.133 213.337 103.536 213.371 103.94C213.405 104.343 213.575 104.724 213.854 105.018C214.878 106.015 215.45 105.895 215.889 105.456C216.328 105.018 216.514 105.789 217.645 105.736C218.775 105.683 220.677 104.805 220.93 103.594C221.182 102.384 220.85 101.759 221.262 101.427C221.674 101.094 225.039 99.5646 225.625 97.2105C226.21 94.8564 225.997 94.4174 226.875 93.5396C227.753 92.6618 229.614 92.4624 230.253 88.9246C230.891 85.3868 230.466 74.8399 228.271 71.9804C226.077 69.1209 220.291 72.1267 219.174 72.6986C216.513 73.8623 213.742 74.7535 210.901 75.3586C209.465 75.3586 205.581 75.9039 204.092 75.5448C202.602 75.1857 199.131 74.401 198.147 74.0685C196.956 73.7315 195.798 73.2864 194.689 72.7385C194.25 72.3794 193.851 71.8607 193.159 72.1932C191.921 72.9531 190.794 73.8795 189.808 74.9463Z\"\n fill=\"#585858\"\n />\n <path\n d=\"M114.955 79.5467C115.285 79.6251 115.626 79.6368 115.96 79.5811C116.294 79.5255 116.614 79.4036 116.9 79.2227C117.186 79.0418 117.434 78.8055 117.627 78.5277C117.821 78.2498 117.957 77.9361 118.027 77.6049C118.359 76.9729 118.538 76.2718 118.55 75.558C118.561 74.8442 118.405 74.1377 118.094 73.4952C117.668 72.1652 117.243 71.7529 117.974 70.5426C118.706 69.3323 118.919 69.3722 118.746 68.0156C118.573 66.659 119.118 66.2467 120.076 64.9965C120.076 64.9965 120.249 62.935 120.781 62.6956C121.313 62.4562 121.978 61.8444 122.337 62.2833C122.696 62.7222 123.281 60.7804 123.667 60.2883C124.052 59.7962 124.305 61.8444 125.329 62.2567C125.329 62.2567 126.473 59.8228 127.843 59.4637C128.903 59.0289 130.055 58.8644 131.194 58.9849C131.992 59.2642 134.839 60.6208 135.304 58.7721C135.304 58.7721 136.634 60.7272 137.312 59.5435C137.312 59.5435 139.307 61.2459 140.558 59.7031C140.558 59.7031 141.555 62.3631 142.859 61.0996C142.843 61.5106 142.936 61.9184 143.127 62.2824C143.319 62.6464 143.602 62.954 143.949 63.1744C144.577 63.4879 145.124 63.9432 145.545 64.5044C145.545 64.5044 146.875 64.5975 147.633 62.7754C148.078 61.467 148.268 60.0855 148.192 58.7056L146.21 60.1819L145.851 57.2426C145.121 57.9516 144.433 58.7021 143.79 59.4903C143.537 59.9691 143.79 54.7688 140.731 54.1703L138.749 53.5452C138.5 54.8138 138.108 56.0499 137.578 57.2293C137.578 57.2293 137.339 52.4945 134.666 52.2285L134.187 54.6225C134.187 54.6225 130.862 51.5901 127.83 52.5211C125.934 53.1384 124.141 54.035 122.51 55.1811C122.51 55.1811 117.442 54.7821 115.394 57.8411C113.346 60.9001 113.612 61.8311 113.692 62.6956C113.771 63.5601 113.239 63.8527 112.747 64.2916C112.255 64.7305 112.202 65.5418 112.402 66.4994C112.601 67.457 112.402 68.4013 113.146 68.9599C114.214 69.9527 114.932 71.2634 115.195 72.6972C115.367 74.0937 115.354 78.8684 114.955 79.5467Z\"\n fill=\"#BA8954\"\n />\n <path\n d=\"M148.896 197.227C148.91 195.737 149.147 194.257 149.601 192.838C150.08 191.402 150.732 189.979 150.732 189.979L156.198 188.742L157.688 194.314C157.688 194.314 151.623 197.227 148.896 197.227Z\"\n fill=\"#FFDAB2\"\n />\n <path\n d=\"M152.58 182.222C152.58 182.103 156.198 188.739 156.198 188.739C156.198 188.739 151.131 190.402 150.732 189.976C150.333 189.551 152.833 183.313 152.58 182.222Z\"\n fill=\"#84D492\"\n />\n <path\n d=\"M57.2326 174.11C57.827 174.04 58.4289 174.145 58.965 174.411C59.501 174.677 59.9481 175.093 60.2517 175.609C60.5553 176.125 60.7024 176.718 60.675 177.316C60.6476 177.914 60.4469 178.491 60.0974 178.976C59.7479 179.462 59.2646 179.836 58.7064 180.052C58.1483 180.268 57.5394 180.317 56.9538 180.193C56.3683 180.069 55.8314 179.778 55.4086 179.354C54.9859 178.931 54.6954 178.393 54.5726 177.807C54.5042 177.39 54.5188 176.963 54.6155 176.551C54.7122 176.139 54.8891 175.751 55.1362 175.407C55.3832 175.064 55.6955 174.772 56.0553 174.55C56.415 174.327 56.8151 174.178 57.2326 174.11Z\"\n fill=\"white\"\n />\n <path\n d=\"M58.0312 181.344L60.8508 180.014C61.6054 182.017 62.7852 183.832 64.3089 185.334C64.3089 185.334 63.3645 187.502 61.4892 187.475C59.9436 185.68 58.7684 183.596 58.0312 181.344Z\"\n fill=\"white\"\n />\n <path\n d=\"M242.516 78.8033C243.447 78.8033 243.074 80.8249 241.665 80.8116C240.534 80.8116 240.893 80.12 241.359 80.0668C241.824 80.0136 241.997 79.6146 242.143 79.2555C242.29 78.8964 242.21 78.79 242.516 78.8033Z\"\n fill=\"#000001\"\n />\n <path\n d=\"M240.388 83.7242C240.773 84.1897 240.268 85.2005 239.058 85.3335C238.566 85.4056 238.065 85.3258 237.62 85.1047C237.176 84.8836 236.809 84.5319 236.57 84.0966C236.038 83.2188 235.772 85.4266 233.631 84.735C232.713 84.4158 232.807 83.2853 233.219 83.2188C233.361 83.211 233.502 83.237 233.632 83.2949C233.761 83.3527 233.875 83.4406 233.964 83.5513C235.214 84.8813 236.185 81.2504 237.142 83.0858C238.1 84.9212 239.23 84.2429 239.47 83.8306C239.581 83.7002 239.738 83.6168 239.908 83.597C240.078 83.5773 240.249 83.6227 240.388 83.7242Z\"\n fill=\"#000001\"\n />\n <path\n d=\"M238.366 71.8332C239.031 71.0884 239.417 71.0618 239.629 71.1416C239.842 71.2214 239.895 71.6204 239.629 71.8598C239.031 72.3785 239.084 72.6578 239.417 73.0701C240.201 74.0543 239.629 76.2355 236.956 76.1557C236.323 76.1679 235.711 75.9288 235.254 75.4907C234.935 75.1981 234.708 74.9188 234.988 74.573C235.267 74.2272 235.533 74.4932 235.812 74.7592C236.85 75.7168 239.377 74.9587 238.698 73.6154C238.459 73.1765 237.674 72.6046 238.366 71.8332Z\"\n fill=\"#000001\"\n />\n <path\n d=\"M238.845 78.9764C239.722 78.9764 239.244 80.2133 238.219 80.3064C237.195 80.3995 236.57 81.6364 234.509 80.0404C233.817 79.4951 233.791 81.3704 231.357 80.8517C229.734 80.466 229.309 77.8326 230.599 77.9124C231.131 77.9124 230.732 78.5375 230.944 79.0296C231.357 80.0271 231.875 79.9207 232.141 79.8941C233.471 79.801 233.777 78.0188 235.147 79.1759C236.717 80.5059 236.477 79.1759 237.807 79.1759C238.126 79.2025 238.539 78.9764 238.845 78.9764Z\"\n fill=\"#000001\"\n />\n <path\n d=\"M238.791 251.039C238.791 252.05 237.874 252.036 237.621 251.358C235.985 246.77 233.405 230.876 233.392 230.849C231.569 223.787 230.931 223.149 229.628 219.012C229.189 217.682 230.519 217.683 230.625 218.321C230.771 219.185 233.285 225.343 234.003 228.256C234.894 231.927 235.958 239.494 236.078 239.973C237.541 246.264 238.618 250.241 238.791 251.039Z\"\n fill=\"#000001\"\n />\n <path\n d=\"M236.704 65.0904C237.422 64.7845 237.648 65.3564 237.475 65.7687C237.302 66.181 236.823 66.1943 236.318 66.2608C236.016 66.2832 235.726 66.3891 235.48 66.5667C235.36 66.7263 235.587 67.1918 235.666 67.5908C235.725 67.9137 235.719 68.245 235.647 68.5652C235.575 68.8854 235.439 69.1879 235.248 69.4547C235.057 69.7215 234.814 69.9471 234.534 70.1181C234.254 70.2892 233.943 70.4021 233.618 70.4503C232.288 70.5301 231.956 69.8651 232.049 69.4661C232.142 69.0671 232.301 69.0006 232.927 69.3863C233.871 69.9715 234.403 68.8277 234.549 68.6282C235.493 67.2982 232.98 66.5268 234.948 65.5825C236.052 65.0505 235.799 65.4894 236.704 65.0904Z\"\n fill=\"#000001\"\n />\n <path\n d=\"M232.7 102.821C238.632 102.914 241.411 103.712 236.251 113.368C235.799 114.206 235.613 114.698 234.921 114.698C234.369 114.75 233.814 114.639 233.325 114.379C232.54 113.794 228.643 113.847 229.574 111.945C231.264 108.487 231.955 107.17 231.809 105.614C231.569 103.792 231.224 102.795 232.7 102.821ZM237.807 105.747C238.007 104.284 234.868 104.032 233.392 103.925C232.647 103.925 232.66 103.859 232.687 104.444C232.846 105.588 232.788 106.753 232.514 107.875C231.077 111.865 229.574 112.743 232.168 112.823C233.325 112.823 233.165 113.155 234.402 113.541C235.639 113.927 237.568 107.569 237.807 105.721V105.747Z\"\n fill=\"#000001\"\n />\n <path\n d=\"M232.754 86.8208C233.937 86.1292 233.432 88.1508 232.315 87.8183C229.961 87.1932 230.466 86.1292 231.424 86.4883C231.916 86.7543 232.195 87.1001 232.754 86.8208Z\"\n fill=\"#000001\"\n />\n <path\n d=\"M230.346 73.0033C231.091 73.4821 230.054 75.0648 228.671 74.9717C228.019 74.9717 226.981 74.5993 227.048 73.6417C227.048 73.2693 227.474 72.9501 227.819 73.4422C228.551 74.5328 229.149 73.8944 229.602 73.4422C229.854 73.1496 230.027 72.7905 230.346 73.0033Z\"\n fill=\"#000001\"\n />\n <path\n d=\"M229.681 63.1611C229.869 63.2725 230.032 63.4209 230.16 63.5972C230.288 63.7736 230.38 63.9742 230.428 64.187C230.477 64.3997 230.481 64.62 230.442 64.8347C230.403 65.0493 230.32 65.2537 230.2 65.4354C229.189 66.9117 228.018 66.8452 227.899 66.3132C227.899 66.1137 227.899 65.9541 228.258 65.7812C228.617 65.6083 229.029 65.5817 229.215 65.3423C229.681 64.7305 229.601 64.1453 228.763 63.5202C228.444 63.2808 228.351 62.9616 228.617 62.3365C228.883 61.7114 227.194 61.9109 227.287 60.6873C227.393 59.6765 228.723 59.5036 228.87 60.0489C229.016 60.5942 228.138 60.4878 228.338 60.9799C228.537 61.472 229.335 60.9799 229.588 61.2858C229.639 61.3509 229.676 61.4259 229.696 61.506C229.717 61.5861 229.721 61.6696 229.708 61.7513C229.694 62.6424 229.122 62.7355 229.681 63.1611Z\"\n fill=\"#000001\"\n />\n <path\n d=\"M224.827 82.2623C224.963 82.2031 225.117 82.1991 225.256 82.2513C225.395 82.3034 225.508 82.4075 225.572 82.5416C225.629 82.6695 225.637 82.8144 225.592 82.9474C225.548 83.0805 225.455 83.192 225.332 83.2598C218.948 87.1301 207.829 88.7527 207.178 88.0611C206.859 87.7153 207.005 87.2365 207.896 87.1301C220.012 85.7735 223.271 82.9539 224.827 82.2623Z\"\n fill=\"#000001\"\n />\n <path\n d=\"M224.268 69.8117C224.388 70.0245 225.306 69.6521 225.226 70.3038C225.146 70.9555 223.896 71.1284 223.151 70.1309C222.792 69.5989 222.313 69.692 221.342 68.8009C221.174 68.496 221.076 68.1568 221.058 67.8089C221.039 67.4611 221.1 67.1135 221.236 66.7926C221.555 66.367 221.382 66.0079 221.236 65.6089C221.106 65.2676 221.055 64.9011 221.089 64.5374C221.122 64.1737 221.238 63.8225 221.428 63.5106C221.618 63.1986 221.877 62.9343 222.185 62.7378C222.493 62.5414 222.841 62.4179 223.204 62.377C223.789 62.377 225.199 62.7095 224.84 63.707C224.601 64.3055 223.749 63.6006 223.51 63.5075C222.619 63.2149 221.715 64.5848 222.247 65.303C223.51 66.9921 221.342 67.3645 222.433 68.2556C223.143 68.645 223.768 69.1743 224.268 69.8117Z\"\n fill=\"#000001\"\n />\n <path\n d=\"M213.135 79.4674C218.708 78.1374 219.785 76.8074 219.785 78.3369C218.575 79.5472 216.873 79.6669 211.805 80.9969C204.623 82.9786 205.076 83.6569 204.717 83.2845C204.557 83.085 204.451 82.819 204.637 82.6195C205.834 81.2895 206.884 81.2895 208.161 80.9171C209.774 80.2916 211.439 79.8065 213.135 79.4674Z\"\n fill=\"#000001\"\n />\n <path\n d=\"M217.258 252.023C217.278 252.111 217.278 252.201 217.258 252.289C217.178 253.486 216.168 252.848 216.061 252.515C214.731 248.139 215.356 237.952 215.276 229.666C215.276 229.4 214.478 217.43 214.598 216.805C214.618 216.68 214.682 216.566 214.778 216.484C214.875 216.402 214.997 216.356 215.124 216.356C215.25 216.356 215.372 216.402 215.469 216.484C215.565 216.566 215.629 216.68 215.649 216.805C217.152 235.385 215.862 248.259 217.258 252.023Z\"\n fill=\"#000001\"\n />\n <path\n d=\"M215.131 95.7077C215.849 97.0377 214.545 97.2904 214.386 96.7717C214.226 96.253 213.521 96.0535 213.056 95.8407C212.59 95.6279 211.726 96.4525 211.3 97.0643C210.436 98.5406 212.63 98.8332 211.952 100.682C211.752 101.227 211.473 101.586 210.156 101.746C209.651 101.746 209.318 100.921 209.837 100.709C212.005 99.8307 209.731 99.5115 209.837 97.5165C209.976 96.753 210.352 96.0523 210.91 95.5131C211.468 94.9739 212.181 94.6233 212.949 94.5107C213.601 94.7368 214.798 95.0826 215.131 95.7077Z\"\n fill=\"#000001\"\n />\n <path\n d=\"M212.018 56.8448C212.298 57.3178 212.419 57.8676 212.364 58.4142C212.431 62.9761 207.869 63.7342 205.874 60.8747C203.879 58.0152 206.552 53.4001 209.451 54.8099C210.422 55.2754 211.087 54.9695 212.018 56.8448ZM208.467 61.8323C208.901 61.8912 209.342 61.8494 209.757 61.7101C210.172 61.5707 210.549 61.3376 210.859 61.0288C211.169 60.72 211.404 60.3439 211.545 59.9296C211.686 59.5154 211.73 59.0741 211.673 58.6403C211.673 55.9803 208.361 54.1582 206.672 56.4458C206.308 56.8826 206.061 57.4053 205.955 57.9642C205.85 58.5231 205.889 59.0997 206.069 59.6393C206.249 60.1789 206.563 60.6636 206.983 61.0474C207.403 61.4312 207.914 61.7014 208.467 61.8323Z\"\n fill=\"#000001\"\n />\n <path\n d=\"M212.271 7.75411C213.375 11.3185 211.513 15.508 210.941 17.1838C210.157 19.2719 209.611 18.9261 208.281 18.9261C206.446 19.2187 203.467 17.9286 204.81 16.2661C205.439 15.569 205.857 14.7082 206.017 13.7833C206.177 12.8583 206.072 11.907 205.714 11.0392C204.69 8.13981 204.105 6.10491 207.67 6.35761C211.46 6.63691 211.939 6.67681 212.271 7.75411ZM209.372 17.5961C210.25 15.6942 212.285 11.8771 211.287 8.57871C211.008 7.67431 210.822 7.83391 209.957 7.76741C206.207 7.51471 205.502 7.26201 206.047 8.83141C206.592 10.4008 207.936 12.8214 206.379 15.9735C206.034 16.6784 205.276 17.0907 205.821 17.3035C207.55 17.9419 209.199 17.9419 209.372 17.5961Z\"\n fill=\"#000001\"\n />\n <path\n d=\"M206.978 66.3027C212.897 64.9727 211.859 72.9527 207.749 72.2744C207.1 72.1709 206.494 71.8845 206.001 71.4487C205.509 71.0129 205.151 70.4458 204.97 69.8139C204.975 69.0562 205.092 68.3034 205.316 67.5795C206.818 66.1564 206.646 66.3825 206.978 66.3027ZM210.436 69.3484C210.875 66.5687 205.848 65.784 205.688 69.1622C205.103 71.2769 209.851 73.1123 210.436 69.3484Z\"\n fill=\"#000001\"\n />\n <path\n d=\"M199.916 217.308C200.235 217.308 200.408 217.415 200.421 217.787C200.421 217.787 198.852 231.34 198.333 234.465C197.003 242.538 197.894 252.274 196.724 252.327C195.553 252.38 196.285 249.827 195.992 249.814C196.271 243.416 198.546 217.215 199.916 217.308Z\"\n fill=\"#000001\"\n />\n <path\n d=\"M198.08 102.77C198.2 103.435 197.588 103.781 197.255 103.209C196.511 101.958 197.442 104.233 190.991 108.529C184.82 112.625 187.147 106.175 186.522 103.022C186.522 102.796 186.363 102.916 186.243 102.81C186.153 102.739 186.093 102.636 186.075 102.522C186.058 102.409 186.085 102.293 186.15 102.198C186.376 101.919 186.828 102.091 187.347 102.198C192.92 102.983 195.021 101.692 195.327 101.573C196.338 101.24 194.822 101.573 195.234 100.482C195.553 99.7374 197.774 101.041 198.08 102.77ZM196.152 102.318C196.271 102.131 195.992 102.091 195.287 102.411C194.928 102.557 192.627 103.621 187.746 103.089C187.028 103.009 187.427 103.182 187.32 106.8C187.32 109.46 188.198 109.034 189.076 108.608C191.867 107.056 194.283 104.908 196.152 102.318Z\"\n fill=\"#000001\"\n />\n <path\n d=\"M196.697 83.7767C197.296 84.455 196.697 85.1998 195.912 84.8274C189.848 81.7551 190.34 84.6545 189.023 85.0269C188.544 85.1599 188.518 84.8141 188.451 84.3353C188.637 80.7975 195.008 81.9014 196.697 83.7767Z\"\n fill=\"#000001\"\n />\n <path\n d=\"M190.552 90.6157C193.079 90.7753 195.047 92.5841 194.382 93.1959C193.305 94.1668 193.624 91.8659 190.273 91.8659C189.408 91.8659 188.583 93.1959 188.131 92.7304C187.24 91.9324 189.368 90.6689 190.552 90.6157Z\"\n fill=\"#000001\"\n />\n <path\n d=\"M182.652 27.4507C183.982 29.8048 184.448 30.5363 182.652 33.7017C181.869 34.9478 180.742 35.9408 179.407 36.5612C176.175 38.7025 174.951 40.0325 173.462 38.6626C171.972 37.2927 168.222 33.9544 170.256 33.3426C171.015 33.1165 171.586 32.5313 172.291 32.2786C174.193 31.6136 174.645 29.9644 176.773 25.6286C177.452 24.1922 177.571 22.9686 178.875 23.7799C182.054 25.5355 181.947 26.1739 182.652 27.4507ZM175.231 37.8912C181.495 33.6352 181.774 34.1938 182.758 30.2171C181.003 25.9611 180.098 25.8946 178.596 24.8306C178.303 24.6045 178.21 24.9636 178.037 25.3626C174.606 33.3426 174.446 32.4648 170.961 34.3534C170.549 34.5662 171.054 34.3534 172.065 35.6834C172.769 36.4869 173.544 37.2257 174.379 37.8912C174.435 37.9475 174.501 37.9922 174.574 38.0227C174.647 38.0532 174.726 38.0689 174.805 38.0689C174.884 38.0689 174.963 38.0532 175.036 38.0227C175.109 37.9922 175.175 37.9475 175.231 37.8912Z\"\n fill=\"#000001\"\n />\n <path\n d=\"M173.05 249.152C173.223 250.136 172.212 250.309 171.826 249.644C169.007 244.949 166.639 235.626 164.019 231.649C163.767 231.264 163.354 230.466 163.009 229.88C162.663 229.295 162.716 228.963 161.679 229.308C160.749 229.531 159.854 229.881 159.019 230.346C158.487 230.798 158.832 231.503 158.899 232.713C159.577 245.8 158.899 240.773 160.708 248.859C160.907 249.751 160.375 250.602 159.71 250.336C159.045 250.07 159.71 249.764 159.378 248.846C158.102 243.482 157.548 237.971 157.728 232.461C157.728 231.476 157.25 230.386 156.172 230.732C155.377 230.982 154.596 231.275 153.832 231.609C152.635 232.181 152.502 233.192 151.863 232.767C151.225 232.341 152.182 231.011 152.874 230.705C158.407 228.245 156.199 230.359 164.445 226.648C171.6 223.43 171.095 226.17 170.257 226.329C168.872 226.366 167.51 226.701 166.267 227.313C164.937 227.885 164.485 229.441 165.629 231.822C166.682 233.716 167.572 235.696 168.289 237.741C170.523 244.364 172.784 248.035 173.05 249.152Z\"\n fill=\"#000001\"\n />\n <path\n d=\"M171.719 145.793C171.241 145.634 170.629 145.66 170.682 146.179C170.706 146.308 170.76 146.43 170.838 146.535C170.917 146.64 171.018 146.726 171.135 146.787C171.251 146.847 171.38 146.88 171.511 146.883C171.643 146.886 171.773 146.859 171.892 146.804C172.278 146.591 172.544 146.059 171.719 145.793Z\"\n fill=\"#000001\"\n />\n <path\n d=\"M171.56 142.283C171.56 143.414 169.632 143.268 169.991 141.818C170.013 141.719 170.058 141.626 170.123 141.547C170.187 141.468 170.269 141.405 170.362 141.364C170.455 141.322 170.557 141.303 170.659 141.308C170.761 141.313 170.86 141.342 170.948 141.392C170.948 141.738 171.214 141.805 171.454 141.911C171.693 142.017 171.534 142.177 171.56 142.283Z\"\n fill=\"#000001\"\n />\n <path\n d=\"M169.898 61.3147C169.975 61.5178 170.01 61.7344 170 61.9514C169.991 62.1683 169.937 62.3811 169.842 62.5765C169.748 62.772 169.614 62.9461 169.45 63.0882C169.286 63.2303 169.094 63.3373 168.887 63.4028H167.89C165.136 63.19 164.525 63.6156 161.625 58.9473C160.92 57.8301 161.08 56.7262 161.346 53.4677C161.519 51.4195 162.875 51.9116 166.533 52.3106C168.688 52.55 167.038 54.2923 168.275 57.4444C168.688 58.5616 168.634 58.2291 169.898 61.3147ZM166.466 62.2058C168.062 62.2058 169.033 62.6048 168.834 61.7403C168.488 60.264 166.626 58.1094 166.653 54.7977C166.653 53.5475 167.198 53.1219 162.995 53.1884C161.971 53.1884 162.756 53.3879 162.237 56.7129C161.998 58.2424 164.565 62.1659 166.466 62.2058Z\"\n fill=\"#000001\"\n />\n <path\n d=\"M162.224 217.363C162.556 222.962 163.141 226.221 162.224 226.141C161.306 226.061 161.851 225.423 160.894 215.913C160.496 214.795 160.229 213.635 160.096 212.455C159.609 207.528 158.665 202.657 157.276 197.905C156.784 196.362 158.074 196.163 158.327 197.067C160.747 206.045 160.242 203.824 161.332 212.801C161.598 214.783 162.011 213.639 162.224 217.363Z\"\n fill=\"#000001\"\n />\n <path\n d=\"M157.09 220.327C157.755 222.255 158.566 227.27 157.502 227.283C156.811 227.283 156.984 226.884 156.877 225.408C156.465 220.34 156 224.078 155.228 214.528C154.922 210.871 151.132 199.805 151.637 198.768C151.783 198.475 152.448 198.355 152.581 198.768C152.98 200.018 154.284 205.418 154.829 207.426C157.596 217.561 156.252 217.76 157.09 220.327Z\"\n fill=\"#000001\"\n />\n <path\n d=\"M152.501 7.1834C152.86 7.1834 157.01 5.6805 155.839 8.3006C153.818 12.7694 156.252 18.249 154.509 18.9406C149.349 20.8425 147.673 16.7461 147.673 11.9847H147.58C148.059 9.0853 147.899 9.4045 148.471 8.8459C149.662 7.97747 151.044 7.40735 152.501 7.1834ZM153.977 10.934C154.496 7.4893 155.68 7.7553 152.727 8.274C151.849 8.4336 148.963 9.2715 148.857 10.1626C148.857 10.7744 148.684 11.3729 148.578 12.0778C149.136 15.057 149.123 16.2806 150.533 17.584C151.637 18.5948 153.02 17.9697 153.618 17.8766C154.217 17.7835 153.951 17.451 153.924 15.3895C153.911 15.0304 153.871 11.6389 153.977 10.934Z\"\n fill=\"#000001\"\n />\n <path\n d=\"M143.922 72.3531C144.494 72.8585 144.042 73.6831 143.297 73.2442C142.553 72.8053 142.287 72.1004 140.438 72.5127C137.977 73.0713 138.031 74.3481 137.445 73.1644C137.725 71.6748 139.573 70.5044 139.866 70.8103C140.159 71.1162 141.834 70.3049 142.34 71.0896C142.803 71.5853 143.336 72.0109 143.922 72.3531Z\"\n fill=\"#000001\"\n />\n <path\n d=\"M143.523 78.6706C143.523 79.7745 142.034 78.8169 141.701 78.6706C140.593 78.39 139.421 78.5077 138.39 79.0031C138.004 79.1494 137.485 78.6041 137.937 78.2317C139.507 76.915 142.779 77.2608 143.523 78.6706Z\"\n fill=\"#000001\"\n />\n <path\n d=\"M138.137 89.6554C138.922 89.5756 140.611 88.6845 140.186 89.948C140.166 90.005 140.135 90.0572 140.094 90.1008C140.052 90.1445 140.002 90.1786 139.946 90.2007C138.403 90.5864 133.19 102.902 129.213 95.1749C126.46 89.8549 127.019 90.5864 126.699 90.1076C126.127 92.076 124.558 89.3229 126.354 88.0195C127.431 87.2348 127.896 87.5407 127.763 88.219C127.763 88.3919 127.577 88.5249 127.763 88.618C128.442 88.8562 129.141 89.0299 129.851 89.1367C132.566 89.7674 135.366 89.9427 138.137 89.6554ZM137.765 90.9854C138.004 90.5066 133.988 90.9854 131.487 90.5864C128.987 90.1874 127.271 89.2564 127.497 89.7485C127.79 90.5366 128.308 91.2212 128.987 91.7169C130.996 92.7096 133.227 93.1677 135.464 93.0469C135.901 93.0605 136.325 92.903 136.648 92.608C137.09 92.1582 137.466 91.6476 137.765 91.0918V90.9854ZM132.844 96.6645C135.823 95.3345 130.676 94.0045 130.33 94.869C130.184 95.268 130.477 95.6537 130.769 96.0128C130.998 96.3322 131.322 96.5711 131.694 96.6953C132.067 96.8195 132.469 96.8227 132.844 96.7044V96.6645Z\"\n fill=\"#000001\"\n />\n <path\n d=\"M136.036 80.6128C137.831 83.2063 138.11 86.6377 134.865 87.2628C131.407 87.9943 129.718 85.3742 130.875 84.8688C131.42 84.6161 131.447 85.188 131.952 85.6136C133.522 86.9436 137.778 86.1855 135.809 82.3285C134.479 79.8015 134.147 80.2271 134.293 77.3543C134.293 77.2414 134.338 77.1332 134.418 77.0534C134.498 76.9736 134.606 76.9287 134.719 76.9287C134.832 76.9287 134.94 76.9736 135.02 77.0534C135.1 77.1332 135.144 77.2414 135.144 77.3543C135.091 78.5072 135.403 79.6476 136.036 80.6128Z\"\n fill=\"#000001\"\n />\n <path\n d=\"M134.745 149.613C134.745 148.975 135.995 148.589 135.982 149.52C135.969 150.451 134.732 150.478 134.745 149.613Z\"\n fill=\"#000001\"\n />\n <path\n d=\"M135.73 171.902C135.85 173.737 136.262 176.357 134.693 176.663C133.292 176.944 131.859 177.02 130.437 176.889C129.306 176.743 128.255 176.477 128.215 175.918C128.176 175.36 128.481 175.559 128.734 175.626C129.279 175.801 129.841 175.917 130.41 175.972C133.735 176.171 134.573 175.971 134.826 175.267C135.078 174.562 134.985 174.602 134.905 171.942C134.879 171.21 135.677 171.197 135.73 171.902Z\"\n fill=\"#000001\"\n />\n <path\n d=\"M135.184 156.701C135.184 157.619 133.854 157.526 133.854 156.488C133.854 155.451 135.171 156.076 135.184 156.701Z\"\n fill=\"#000001\"\n />\n <path\n d=\"M131.088 49.5029C131.221 46.9892 134.16 47.9734 134.067 49.3965C134.074 49.5921 134.042 49.7872 133.974 49.9706C133.906 50.154 133.802 50.3221 133.668 50.4654C133.535 50.6087 133.375 50.7243 133.197 50.8056C133.019 50.8869 132.826 50.9323 132.631 50.9393C132.435 50.9463 132.24 50.9147 132.057 50.8463C131.873 50.7779 131.705 50.674 131.562 50.5406C131.419 50.4073 131.303 50.247 131.222 50.0689C131.14 49.8909 131.095 49.6985 131.088 49.5029ZM132.644 50.261C133.774 50.261 133.508 48.5719 132.484 48.6783C132.296 48.7334 132.128 48.8418 132.001 48.9906C131.873 49.1394 131.792 49.322 131.766 49.5162C131.814 49.7178 131.925 49.8987 132.083 50.0327C132.241 50.1667 132.437 50.2467 132.644 50.261Z\"\n fill=\"#000001\"\n />\n <path\n d=\"M132.577 57.1517C132.91 57.8566 132.178 58.1891 131.686 57.7369C127.843 54.1858 125.994 58.3487 125.369 58.3221C125.249 58.3221 124.863 57.7901 125.369 56.9921C126.619 54.7577 131.42 54.6779 132.577 57.1517Z\"\n fill=\"#000001\"\n />\n <path\n d=\"M132.152 37.8921C132.152 40.7649 128.295 40.2994 128.295 37.8921C128.295 35.4848 132.139 35.2321 132.152 37.8921ZM128.987 37.8921C128.987 39.5014 131.647 39.6876 131.474 37.9852C131.481 37.6652 131.362 37.355 131.144 37.1213C130.925 36.8875 130.623 36.7489 130.303 36.735C129.981 36.7355 129.669 36.8531 129.427 37.066C129.185 37.2788 129.028 37.5724 128.987 37.8921Z\"\n fill=\"#000001\"\n />\n <path\n d=\"M131.66 58.5997C132.404 58.7859 132.537 59.6903 131.54 59.6903C130.851 59.4922 130.126 59.4576 129.422 59.5892C128.718 59.7208 128.054 60.015 127.483 60.4484C125.688 61.672 126.433 63.1084 125.595 62.9755C123.932 62.7094 126.632 57.3229 131.66 58.5997Z\"\n fill=\"#000001\"\n />\n <path\n d=\"M129.359 152.605C129.146 151.461 130.862 151.833 130.809 152.605C130.809 153.522 129.492 153.363 129.359 152.605Z\"\n fill=\"#000001\"\n />\n <path\n d=\"M130.716 78.3633C131.168 78.8155 131.142 79.4805 130.397 79.4539C126.58 77.3658 125.941 80.1588 125.077 79.6002C124.532 79.2278 125.423 78.2702 125.941 78.0441C126.692 77.6629 127.532 77.4914 128.373 77.5475C129.213 77.6037 130.022 77.8855 130.716 78.3633Z\"\n fill=\"#000001\"\n />\n <path\n d=\"M127.829 43.2109C129.292 43.3838 130.489 43.9025 130.369 45.3655C130.303 49.0496 125.049 48.0255 125.887 45.0596C126.018 44.6071 126.267 44.1976 126.608 43.8727C126.95 43.5479 127.371 43.3195 127.829 43.2109ZM127.098 46.6157C129.532 47.9457 130.888 44.5276 128.428 44.0488C126.872 43.7429 125.675 45.8709 127.044 46.6157H127.098Z\"\n fill=\"#000001\"\n />\n <path\n d=\"M127.164 70.6101C128.401 68.5087 132.139 72.8711 129.904 72.8312C124.664 70.1712 124.584 74.2809 123.414 74.0149C122.243 73.7489 125.116 70.1446 126.686 70.6899C126.832 70.7431 127.111 70.7032 127.164 70.6101Z\"\n fill=\"#000001\"\n />\n <path\n d=\"M126.699 31.1633C127.284 29.6072 129.625 30.4717 129.625 31.9081C129.612 34.4085 125.396 34.6745 126.699 31.1633ZM128.428 32.8125C129.08 32.0278 128.987 31.8416 128.774 31.549C128.679 31.4128 128.551 31.3025 128.402 31.2282C128.254 31.1539 128.089 31.1179 127.923 31.1234C127.537 31.1234 127.444 31.1234 127.165 32.1608C127.108 32.3241 127.113 32.5022 127.177 32.6625C127.241 32.8228 127.361 32.9546 127.514 33.0338C127.668 33.113 127.845 33.1342 128.013 33.0935C128.18 33.0529 128.328 32.9531 128.428 32.8125Z\"\n fill=\"#000001\"\n />\n <path\n d=\"M129.159 157.458C130.595 157.565 130.01 158.882 129.425 158.788C129.238 158.765 129.067 158.67 128.948 158.524C128.829 158.378 128.771 158.192 128.787 158.004C128.885 157.806 129.011 157.623 129.159 157.458Z\"\n fill=\"#000001\"\n />\n <path\n d=\"M126.499 150.451C126.499 151.621 124.77 151.368 124.877 150.118C124.957 149.2 125.794 149.094 125.994 149.706C126.193 150.318 126.42 149.985 126.499 150.451Z\"\n fill=\"#000001\"\n />\n <path\n d=\"M119.703 49.6491C120.634 47.162 124.079 47.694 124.052 49.9816C124.012 54.1445 118.626 52.5219 119.703 49.6491ZM123.374 50.2476C123.467 49.0373 122.044 48.3191 121.326 48.9841C121.277 49.0263 121.217 49.054 121.153 49.0639C120.967 49.1404 120.801 49.258 120.667 49.4079C120.533 49.5579 120.435 49.7361 120.38 49.9294C120.325 50.1227 120.314 50.3259 120.349 50.5238C120.384 50.7218 120.463 50.9092 120.581 51.0722C120.763 51.3398 121.026 51.5426 121.331 51.6514C121.636 51.7602 121.967 51.7695 122.278 51.6778C122.588 51.5861 122.862 51.3982 123.059 51.1412C123.256 50.8842 123.366 50.5713 123.374 50.2476Z\"\n fill=\"#000001\"\n />\n <path\n d=\"M121.179 62.3909C121.445 62.6569 121.179 62.6303 120.701 64.1864C120.355 65.2637 120.701 66.2479 119.716 65.7558C118.227 65.0509 117.056 59.9836 119.344 58.1216C120.222 58.1216 119.623 59.2654 119.543 59.4516C119.216 60.1274 119.046 60.8686 119.046 61.6195C119.046 62.3704 119.216 63.1115 119.543 63.7874C119.543 63.7874 119.543 64.0135 119.663 63.7874C119.849 63.1623 120.647 61.8323 121.179 62.3909Z\"\n fill=\"#000001\"\n />\n <path\n d=\"M119.291 67.7375C119.132 68.9993 118.777 70.2286 118.241 71.3817C117.921 72.8447 119.717 73.9087 118.985 76.4224C118.427 78.3775 118.294 78.6169 117.722 78.5238C117.15 78.4307 117.469 77.0076 117.642 76.6618C117.89 76.0551 117.984 75.3967 117.917 74.7449C117.849 74.0931 117.623 73.4679 117.256 72.9245C116.631 71.5945 117.443 70.73 117.881 69.2936C118.32 67.8572 118.294 67.006 118.613 66.8198C119.291 66.4341 119.291 67.1523 119.291 67.7375Z\"\n fill=\"#000001\"\n />\n <path\n d=\"M112.893 4.11027C115.101 6.94317 115.965 11.8376 113.492 13.54C113.146 13.7661 112.308 14.87 110.991 14.87C108.77 14.7237 112.321 13.2873 107.453 6.62397C105.804 4.29647 111.616 2.46107 112.893 4.11027ZM113.811 10.9066C113.984 9.81918 113.893 8.70599 113.545 7.66137C112.215 5.00137 112.534 4.68217 110.765 4.70877C109.249 4.70877 108.185 5.50677 108.451 5.94567C109.781 8.16677 111.35 10.348 111.217 13.2341C111.217 13.8991 111.749 13.4735 112.295 13.0346C113.199 12.2765 113.704 11.9307 113.811 10.9066Z\"\n fill=\"#000001\"\n />\n <path\n d=\"M110.46 100.242C110.739 102.596 110.726 102.968 109.741 104.711C106.603 110.27 104.807 109.538 103.49 114.712C101.442 122.692 106.483 124.86 106.616 125.764C106.922 127.866 103.956 125.259 102.626 122.12C102.282 120.814 102.059 119.478 101.961 118.13C102.32 108.341 109.635 106.373 109.702 101.372C109.702 99.8827 109.249 99.1246 109.702 98.9517C110.154 98.7788 110.406 99.8294 110.46 100.242Z\"\n fill=\"#000001\"\n />\n <path\n d=\"M108.359 129.116C108.93 130.845 109.516 132.149 109.21 133.665C109.077 134.33 108.758 134.383 108.425 134.29C108.093 134.197 108.319 134.29 108.252 133.386C108.398 131.324 106.55 128.451 107.561 128.332C108.093 128.332 108.186 128.611 108.359 129.116Z\"\n fill=\"#000001\"\n />\n <path\n d=\"M107.334 87.6065C107.427 88.205 106.363 88.6705 106.097 87.8991C106.044 87.7371 106.03 87.5648 106.055 87.3962C106.081 87.2276 106.145 87.0673 106.244 86.9282C106.443 86.609 106.762 86.7553 107.028 86.7686C107.294 86.7819 107.334 87.2873 107.334 87.6065Z\"\n fill=\"#000001\"\n />\n <path\n d=\"M104.874 89.404C107.188 90.069 106.071 93.7531 103.384 93.7265C100.471 93.926 99.7665 91.0665 101.668 91.9576C101.908 92.0773 102.121 92.2502 102.347 92.3566C102.797 92.5606 103.307 92.5891 103.777 92.4365C104.247 92.284 104.643 91.9614 104.887 91.532C105.339 90.6409 104.608 90.6542 103.557 89.9759C102.506 89.2976 102.666 87.9144 102.759 86.7706C102.759 86.2386 103.517 86.3849 103.61 86.7706C103.889 87.7016 103.318 88.9651 104.874 89.404Z\"\n fill=\"#000001\"\n />\n <path\n d=\"M103.81 96.3317C104.448 96.5711 103.304 97.7548 102.985 98.2868C101.934 100.042 100.924 101.785 99.2211 102.011C97.1064 102.011 95.2311 96.3583 94.8321 94.9485C94.7257 94.4963 94.739 94.4963 94.2868 94.5761C93.0499 94.8022 94.074 92.1289 95.8828 92.3417C95.9997 92.3412 96.1124 92.3848 96.1986 92.4636C96.2849 92.5424 96.3383 92.6508 96.3483 92.7673C96.3483 93.2461 95.8429 93.2461 95.67 93.3259C95.6537 93.3566 95.6452 93.3908 95.6452 93.4256C95.6452 93.4604 95.6537 93.4946 95.67 93.5254C98.3433 95.9859 102.413 95.7997 103.81 96.3317ZM102.48 97.3425C102.852 96.7972 101.961 97.1297 100.697 96.8238C96.5212 95.8529 95.9493 94.9086 96.1621 95.5736C96.6675 97.2228 97.7448 100.002 99.2078 100.894C99.8063 100.88 100.152 100.774 102.453 97.3425H102.48Z\"\n fill=\"#000001\"\n />\n <path\n d=\"M98.0644 79.3101C101.562 79.3101 102.719 81.6243 101.749 82.0632C101.123 82.3425 101.376 81.212 99.8466 80.7332C96.1758 79.5761 95.5507 82.3558 94.7793 81.3849C94.0079 80.414 96.1359 79.3101 98.0644 79.3101Z\"\n fill=\"#000001\"\n />\n <path\n d=\"M100.033 107.744C102.028 107.158 99.6741 109.579 99.0357 111.734C98.0116 115.271 98.5702 116.109 97.7855 116.083C96.655 116.083 97.985 111.654 98.0249 111.454C98.4839 110.115 99.1626 108.86 100.033 107.744Z\"\n fill=\"#000001\"\n />\n <path\n d=\"M100.152 30.9367C100.471 33.211 98.3168 36.7355 97.0267 38.7039C95.4174 41.1644 93.3426 40.0339 90.8821 38.3315C90.1639 37.8527 90.5895 37.0015 91.1215 36.3897C94.8189 31.9209 91.3077 26.5743 93.7815 26.8536C93.9145 26.8536 95.1115 26.7339 96.0824 26.7738C99.3409 26.9334 100.152 26.9201 100.152 30.9367ZM95.4706 38.797C96.9203 37.1212 99.2744 33.1977 99.2212 30.7505C98.7956 28.157 98.9419 28.0905 97.8114 28.0905C96.5761 27.941 95.3303 27.8965 94.0874 27.9575C93.0367 28.0506 95.6701 31.7746 91.8796 37.2675C91.6535 37.5867 91.5338 37.6133 94.1672 38.8236C94.4199 38.8901 95.2312 39.0763 95.4706 38.797Z\"\n fill=\"#000001\"\n />\n <path\n d=\"M99.0878 86.597C99.2873 87.8206 97.7578 88.1797 97.7578 86.9561C97.7711 86.0517 98.9415 85.7724 99.0878 86.597Z\"\n fill=\"#000001\"\n />\n <path\n d=\"M97.2399 64.0774C97.3579 64.2308 97.4274 64.4161 97.4394 64.6094C97.4394 65.3409 85.1369 62.0425 83.7404 73.9194C83.102 79.3857 84.2857 82.0457 83.5276 84.8786C83.3148 85.65 83.3813 86.315 83.0222 86.2086C81.6922 85.65 83.3414 85.1978 82.5966 80.1438C81.506 72.8421 83.8202 65.5138 91.1485 64.0109C92.3322 63.7183 96.5084 62.9868 97.2399 64.0774Z\"\n fill=\"#000001\"\n />\n <path\n d=\"M92.1055 133.652C92.3316 132.868 94.0207 133.652 92.2917 135.448C90.9617 136.778 90.0174 137.616 90.4031 139.092C90.4962 139.411 90.6425 140.103 90.31 140.236C89.4588 140.555 89.3923 139.212 89.2061 138.214C89.2593 136.179 91.7198 134.982 92.1055 133.652Z\"\n fill=\"#000001\"\n />\n <path\n d=\"M88.8869 128.571C89.2466 128.612 89.592 128.735 89.897 128.93C90.202 129.125 90.4585 129.387 90.647 129.696C90.8355 130.005 90.951 130.353 90.9848 130.714C91.0186 131.074 90.9698 131.438 90.842 131.776C90.3898 132.601 89.512 132.268 89.8312 131.457C89.8825 131.271 89.8926 131.076 89.8608 130.885C89.8291 130.695 89.7563 130.514 89.6475 130.354C89.5386 130.195 89.3964 130.061 89.2306 129.962C89.0648 129.863 88.8794 129.801 88.6874 129.781C87.3574 129.662 84.2186 128.598 83.9792 126.057C83.4206 120.165 87.6899 119.234 87.1978 117.173C86.2801 113.369 85.6683 113.861 85.3225 112.85C84.9767 111.84 87.5303 111.973 88.3416 117.319C88.3416 120.445 83.7797 121.894 85.3092 126.51C85.6949 127.68 87.6101 128.332 88.8869 128.571Z\"\n fill=\"#000001\"\n />\n <path\n d=\"M81.1328 92.6102C81.1328 92.2644 81.9973 92.2644 81.9574 92.7565C81.319 101.242 73.9774 100.071 76.3714 107.546C76.6043 108.425 77.0147 109.246 77.5775 109.96C78.1402 110.674 78.8432 111.264 79.6432 111.696C80.229 112.061 80.6772 112.611 80.9178 113.258C81.1584 113.905 81.1779 114.614 80.9732 115.273C80.2151 117.455 78.8319 117.721 79.8427 120.686C79.9225 120.952 79.9225 121.285 79.6964 121.365C79.4703 121.445 79.2176 121.258 78.9915 121.139C78.7654 121.019 78.7787 120.833 78.3398 119.223C78.7521 114.356 82.4362 115.233 77.462 111.496C75.4537 109.967 73.6715 104.234 76.0123 101.082C77.6482 98.8479 79.9491 98.0898 81.1328 92.6102Z\"\n fill=\"#000001\"\n />\n <path\n d=\"M79.8564 5.5069C79.6436 8.0738 78.8589 6.4778 75.1349 7.6881C73.6453 8.1669 73.6453 8.6723 72.1823 11.3456C70.7193 14.0189 70.9454 13.8061 70.3336 13.7928C69.243 13.7928 69.0036 12.9283 67.5672 11.8244C65.2929 10.1087 65.5323 9.1644 65.6387 7.9408C66.1658 5.65904 67.5335 3.65975 69.4691 2.3415C69.9346 2.0356 70.972 1.7962 71.3311 1.5568C73.4059 0.133698 75.0684 0.838598 76.7974 0.772098C78.5264 0.705598 78.9919 0.399698 79.8564 5.5069ZM75.6004 6.3049C78.9919 5.3739 79.2845 7.3822 78.2604 3.0198C78.0343 2.0755 77.8348 1.8893 77.3959 1.9159C74.7359 2.142 74.3369 1.1977 71.8631 2.6607C70.7193 3.339 70.5331 2.807 69.2031 4.0705C66.317 7.0364 67.0618 7.7147 66.5431 8.8585C66.6495 9.1378 66.5431 9.7629 68.2322 10.9466C69.9213 12.1303 69.9479 12.9815 70.3469 12.2766C72.6478 8.4063 72.3818 7.196 75.6004 6.3049Z\"\n fill=\"#000001\"\n />\n <path\n d=\"M76.1326 175.136C76.1326 175.455 76.2789 176 76.2124 176.559C76.1459 177.117 75.4011 177.011 75.2681 176.692C74.6164 175.083 75.6006 174.777 74.3504 173.513C72.3687 171.518 75.8932 171.239 73.0204 168.007C72.0894 166.956 73.0204 165.533 72.1426 163.764C71.8766 162.434 73.5657 162.634 73.712 165.759C73.6445 166.138 73.6658 166.528 73.7742 166.897C73.8827 167.266 74.0754 167.605 74.3371 167.887C74.8275 168.323 75.1618 168.907 75.2891 169.551C75.4164 170.194 75.3296 170.862 75.042 171.452C74.3903 172.848 76.4518 173.114 76.1326 175.136Z\"\n fill=\"#000001\"\n />\n <path\n d=\"M67.7267 96.9967C68.6311 96.7706 68.6444 97.7016 68.2986 98.0341C67.9528 98.3666 67.3144 98.9518 66.676 98.7523C66.3394 98.8016 65.9962 98.7814 65.6677 98.6928C65.3392 98.6042 65.0323 98.4492 64.7661 98.2373C64.5 98.0253 64.2801 97.7611 64.1201 97.4608C63.9602 97.1605 63.8635 96.8306 63.8362 96.4914C63.8088 96.1523 63.8513 95.8111 63.9611 95.4891C64.0709 95.167 64.2456 94.8709 64.4744 94.6191C64.7031 94.3673 64.9812 94.1651 65.2912 94.025C65.6013 93.8849 65.9368 93.8099 66.277 93.8047C66.8356 93.8047 66.9021 94.5628 66.5962 94.7623C66.0376 95.1347 65.2662 94.9618 65.1066 95.946C64.9337 96.6775 65.2263 97.276 66.4366 97.5021C67.1149 97.6218 67.0351 97.1563 67.7267 96.9967Z\"\n fill=\"#000001\"\n />\n <path\n d=\"M68.1521 100.709C70.8121 100.709 64.7207 106.029 62.8321 106.614C58.483 108.144 57.5919 96.5992 56.8338 100.15C56.7994 100.254 56.7333 100.343 56.645 100.407C56.5567 100.471 56.4505 100.505 56.3417 100.505C56.2328 100.505 56.1267 100.471 56.0384 100.407C55.95 100.343 55.884 100.254 55.8496 100.15C55.2511 97.9558 58.5096 95.8012 58.8288 97.1179C58.9751 97.6765 58.6825 97.7297 58.0042 98.1287C60.7062 99.4838 63.6139 100.383 66.6093 100.789C67.1207 100.722 67.6365 100.695 68.1521 100.709ZM62.9385 105.231C64.3579 104.287 65.6692 103.19 66.8487 101.959C57.02 100.722 57.6584 97.3174 59.7465 102.558C60.4647 104.393 61.3292 106.255 62.9385 105.231Z\"\n fill=\"#000001\"\n />\n <path\n d=\"M62.1013 72.5641C63.1121 72.5641 64.5618 73.668 64.1894 74.6123C63.817 75.5566 63.4845 74.8384 61.7422 74.6123C60.6866 74.4078 59.5929 74.6264 58.6972 75.2211C57.8014 75.8158 57.1754 76.7388 56.9542 77.791C56.8877 78.5491 55.8902 78.5757 55.9035 77.259C55.9301 74.9448 58.3374 72.3247 62.1013 72.5641Z\"\n fill=\"#000001\"\n />\n <path\n d=\"M245.894 226.632C241.904 214.822 243.686 214.902 241.172 211.098C240.135 209.515 238.512 205.326 239.244 203.118C239.538 202.244 239.481 201.29 239.084 200.458C238.393 198.782 237.315 199.248 237.754 198.702C238.645 197.372 239.377 196.534 239.164 195.071C238.924 193.823 238.339 192.666 237.475 191.733C234.975 187.637 236.863 186.559 236.145 183.846C235.245 181.105 235.066 178.178 235.626 175.348C238.526 156.807 248.846 133.466 237.515 123.305C234.23 120.365 231.543 121.802 230.865 120.645C229.647 119.9 228.289 119.416 226.875 119.222C224.853 118.929 224.521 119.461 224.215 119.607C223.909 119.754 223.882 119.607 221.555 118.796C220.411 118.397 221.049 117.187 219.507 116.814C218.522 116.588 215.078 105.469 216.581 106.374C218.084 107.278 222.379 104.751 221.754 102.769C221.542 102.078 221.369 102.37 224.281 100.296C227.553 97.9549 225.904 95.92 227.54 94.1245C228.591 92.9674 228.418 92.9408 228.697 93.26C229.519 93.8823 230.542 94.1805 231.57 94.0979C233.379 93.9782 234.23 94.1777 234.735 92.8477C235.094 91.8502 234.735 91.3315 234.961 90.0813C235.094 89.403 236.291 89.5892 236.371 90.7064C236.504 92.5152 236.371 93.1802 237.488 93.4462C239.949 94.0447 241.797 92.9807 242.276 91.8369C242.755 90.6931 241.651 89.8153 241.797 89.2966C241.864 89.2966 241.97 89.3764 241.984 89.4296C242.25 90.4138 243.739 90.6266 244.444 90.201C245.149 89.7754 245.415 90.201 246.532 89.1769C246.776 88.9987 246.972 88.7644 247.106 88.494C247.239 88.2235 247.305 87.9249 247.299 87.6234C247.292 87.3219 247.213 87.0264 247.068 86.762C246.923 86.4976 246.716 86.2721 246.466 86.1046C246.319 85.9849 246.319 85.945 246.466 85.8253C248.634 83.1653 243.367 82.4737 246.532 82.221C247.982 82.1146 248.048 81.0639 247.862 79.3615C247.676 77.6591 246.306 77.7256 246.04 77.5394C244.803 76.7414 248.195 77.1936 248.7 74.374C249.004 73.5134 249.004 72.5745 248.7 71.714C247.915 69.9717 247.184 70.1712 246.532 70.1579C245.548 70.1579 243.354 71.4879 242.981 70.2909C242.835 69.852 242.981 69.5195 243.221 69.453C243.872 69.2668 246.12 70.2111 246.745 68.6949C247.156 67.7144 247.24 66.6278 246.984 65.596C246.639 64.3724 245.535 64.9709 244.737 65.0507C243.566 65.1438 244.045 64.6517 244.351 64.0532C244.512 63.8463 244.613 63.5993 244.643 63.3391C244.674 63.0789 244.632 62.8153 244.524 62.5769C244.429 62.2595 244.268 61.9657 244.051 61.7148C243.835 61.4639 243.568 61.2616 243.268 61.121C242.968 60.9803 242.641 60.9047 242.31 60.8989C241.979 60.8931 241.65 60.9573 241.345 61.0873C240.574 61.3932 240.986 62.005 240.308 62.4971C239.683 61.5927 240.308 61.8055 238.725 61.3267C237.555 60.9676 241.239 60.0765 239.217 56.818C238.968 56.519 238.648 56.2873 238.285 56.1441C237.923 56.001 237.531 55.951 237.145 55.9986C236.758 56.0462 236.39 56.19 236.074 56.4168C235.757 56.6436 235.503 56.9462 235.334 57.2968C235.214 57.5761 233.791 59.3849 233.711 58.6268C233.458 56.2993 233.073 56.8446 231.61 56.6318C231.397 56.6318 230.359 56.6318 231.41 55.5146C231.758 55.164 232.053 54.7654 232.288 54.3309C232.502 53.9268 232.581 53.4649 232.514 53.0126C232.447 52.5603 232.236 52.1414 231.914 51.8174C231.591 51.4933 231.173 51.281 230.721 51.2115C230.269 51.1421 229.807 51.2192 229.402 51.4315C227.806 52.1231 225.638 53.892 225.957 55.6077C226.021 56.0238 225.972 56.4493 225.815 56.8399C225.658 57.2305 225.4 57.572 225.066 57.8288C225.066 57.8288 224.933 57.4697 224.428 57.35C223.35 57.1106 222.885 57.2303 222.978 56.2195C222.964 55.8337 222.911 55.4505 222.818 55.0757C222.433 53.5063 219.108 54.8762 219.281 57.4032C219.374 58.8662 220.517 58.3874 220.398 59.5711C220.331 60.2494 216.793 60.675 217.977 63.7207C217.977 63.7207 217.977 64.0399 217.857 63.7872C217.073 62.2045 217.857 63.8936 215.743 58.4672C215.437 57.6692 215.65 57.4564 217.658 55.5279C221.967 51.365 225.731 45.0342 227.872 44.6219C230.253 44.1564 230.133 43.1323 231.344 43.2919C231.65 43.2919 236.664 41.4964 237.182 40.4324C238.047 38.7433 240.414 37.8522 240.228 34.7001C240.239 34.1547 240.098 33.6171 239.821 33.1473C239.544 32.6776 239.141 32.2942 238.659 32.0401C238.14 31.7608 240.401 29.3801 238.22 27.5181C237.435 26.8398 236.77 26.4275 236.89 26.3344C237.756 25.0708 238.77 23.9145 239.909 22.8897C240.72 21.9853 242.157 19.8307 243.101 18.78C243.512 18.2631 243.784 17.6495 243.891 16.9976C243.998 16.3457 243.937 15.6773 243.713 15.056C243.628 14.8209 243.479 14.6143 243.282 14.46C243.086 14.3057 242.85 14.2098 242.601 14.1835C242.353 14.1571 242.102 14.2013 241.878 14.3109C241.653 14.4205 241.464 14.5911 241.332 14.8033C237.714 18.6337 238.06 17.4633 235.493 20.1233C234.948 20.6686 234.549 20.5622 235.054 20.0036C236.23 18.75 237.29 17.3923 238.22 15.9471C239.776 13.4733 238.313 11.6645 237.103 12.0768C235.892 12.4891 226.396 22.4508 225.133 23.4217C219.267 28.1565 220.624 33.4898 215.623 38.4374C213.939 40.1511 212.101 41.705 210.13 43.0791C209.864 43.2919 209.877 43.3451 208.72 40.0068C208.321 38.8497 210.05 39.1556 210.609 37.2271C211.154 35.4981 209.944 36.0567 210.01 34.9927C210.117 33.5829 209.173 34.1016 209.212 33.2504C209.252 32.9057 209.252 32.5576 209.212 32.213C209.162 31.9837 209.052 31.7719 208.893 31.599C208.734 31.4261 208.532 31.2984 208.308 31.2288C207.297 30.8963 206.978 31.4682 206.792 31.3618C206.606 31.2554 206.473 30.8697 205.967 30.6835C205.748 30.5867 205.505 30.5565 205.268 30.5967C205.032 30.6369 204.812 30.7457 204.637 30.9096C204.291 31.2288 203.307 30.6303 202.642 31.0027C202.371 31.1658 202.142 31.3905 201.973 31.6584C201.804 31.9264 201.701 32.2302 201.671 32.5455C201.578 33.0243 201.671 33.2371 201.299 33.2637C200.594 33.2637 199.969 33.6361 199.969 34.3144C199.969 35.405 200.594 35.4715 200.541 36.0567C200.488 36.6419 199.849 36.8813 200.089 37.7724C200.262 38.4507 201.086 38.1714 201.206 38.597C201.326 39.0226 201.206 39.1556 201.352 39.6078C201.738 40.5654 202.868 40.1265 202.988 40.3393C202.695 41.5629 201.033 46.9893 199.769 50.6601C199.464 51.5379 191.856 57.1372 188.544 60.8479C187.094 62.4705 187.108 63.2552 186.509 62.9094C185.259 62.1779 182.785 62.2444 181.921 63.4015C181.415 64.0798 181.309 64.4522 180.857 64.5719C178.769 65.1571 178.303 65.0374 177.944 65.8354C176.814 68.3358 176.893 68.4954 176.494 68.5619C173.276 69.4264 171.653 72.0598 172.504 74.9858C172.85 76.236 171.174 76.3956 167.663 78.9758C166.333 80.0132 166.253 80.8511 164.099 82.2742C161.972 83.6447 159.966 85.193 158.101 86.9026C156.972 87.6275 155.916 88.4605 154.948 89.3897C152.435 92.2093 150.4 91.5842 148.591 92.7014C148.515 92.7596 148.421 92.7912 148.325 92.7912C148.229 92.7912 148.135 92.7596 148.059 92.7014C141.409 88.2193 146.33 93.2467 146.037 80.2127C146.037 79.1221 145.838 80.4388 146.596 76.5153C147.181 73.4696 146.955 73.8553 146.809 68.7215C146.809 66.3541 146.131 65.9418 146.942 65.2103C148.618 63.6808 148.511 62.4439 148.83 60.9144C149.682 56.9244 148.112 54.956 147.7 56.1796C147.527 56.6983 147.514 58.414 146.742 59.212C146.436 58.4406 147.195 57.483 145.785 53.892C145.612 53.4797 144.92 53.6792 144.92 54.158C145.12 55.5825 144.898 57.0343 144.282 58.3342C144.162 58.6002 144.149 58.5204 144.149 58.3342C143.963 55.2486 142.247 55.1688 141.795 53.8122C141.196 52.0167 131.075 27.9969 131.008 27.8639C130.962 27.7119 130.96 27.5499 131.003 27.3969C131.045 27.2438 131.13 27.106 131.248 26.9994C131.434 26.7999 131.394 26.494 131.727 26.3211C132.195 26.1605 132.593 25.8447 132.857 25.4262C133.121 25.0077 133.233 24.5115 133.176 24.0202C133.03 22.9429 132.072 22.6104 131.102 22.1183C131.102 21.839 131.301 20.1233 130.609 19.4583C130.331 19.1645 129.987 18.9415 129.605 18.8078C129.223 18.674 128.815 18.6334 128.414 18.6894C128.013 18.7453 127.632 18.8962 127.301 19.1294C126.97 19.3626 126.7 19.6714 126.513 20.0302C126.367 20.2962 126.26 20.3095 126.021 20.2164C125.743 20.0912 125.439 20.0352 125.135 20.053C124.83 20.0709 124.535 20.1621 124.274 20.3189C124.012 20.4757 123.793 20.6935 123.634 20.9535C123.475 21.2136 123.381 21.5083 123.361 21.8124C123.361 22.3444 123.481 22.504 123.015 22.7833C121.193 23.8872 122.656 26.8664 124.611 26.4807C124.997 26.4009 125.156 26.6137 125.449 26.8531C125.742 27.0925 126.141 27.1989 126.021 27.5181C125.599 28.9175 125.093 30.2899 124.505 31.6278C121.632 39.9669 115.048 55.1156 114.836 57.6692C114.836 58.2544 114.131 58.813 113.772 60.0366C113.093 62.3109 114.038 62.8429 113.107 63.4813C112.176 64.1197 112.176 64.6118 111.777 64.2394C110.686 63.0424 110.194 62.404 109.409 62.0848C107.135 61.1538 106.829 61.34 106.536 60.7548C103.398 55.0491 97.9313 57.3234 95.5639 56.4456C94.8124 56.124 93.9707 56.0812 93.1905 56.3251C92.4102 56.5689 91.7426 57.0833 91.3079 57.7756C90.9222 58.3741 90.0843 56.8579 86.5332 57.084C83.421 57.2968 80.0029 57.6426 77.8749 59.9169C71.052 67.2053 75.3346 69.1072 71.6771 63.7473C71.1584 62.9759 71.9564 62.7897 71.7436 61.606C71.5308 60.4223 56.2358 20.0701 53.629 16.9845C52.299 15.4018 51.4212 16.9845 50.3306 19.5248C49.3996 21.7459 48.6149 24.4059 47.777 26.9994C45.6091 33.6494 45.117 33.5696 44.3722 35.9237C39.797 48.9577 39.6507 48.1464 38.3739 53.5462C37.2168 58.4805 35.8868 59.0391 36.1395 61.207C36.1395 61.5927 35.7272 61.4198 33.4795 64.6251C32.1375 66.6131 31.2437 68.8691 30.8602 71.2368C30.4767 73.6046 30.6126 76.0274 31.2584 78.3374C32.8145 82.8461 33.6258 82.753 33.1337 83.2983C31.0722 85.6258 31.8835 89.1237 31.8037 89.8552C31.7503 90.3592 31.7909 90.8688 31.9234 91.3581C32.9475 95.521 35.4213 96.0929 35.3149 96.8643C34.9026 99.644 33.8918 108.834 31.8702 110.922C31.019 111.84 28.492 114.061 27.8802 113.928C26.0182 113.503 24.635 114.473 23.1986 116.069C21.044 118.45 20.7647 117.266 17.4929 120.392C15.0989 122.666 13.2901 123.052 12.1729 124.382C9.96512 127.162 3.62102 128.611 1.90532 137.23C1.05412 141.526 0.761519 142.364 0.814719 144.372C1.12062 155.983 0.149719 152.964 0.176319 160.119C0.176319 163.989 0.535419 159.241 2.15802 179.963C2.19201 180.398 2.38125 180.807 2.69127 181.114C3.00129 181.422 3.41148 181.608 3.84712 181.638C4.60522 181.638 5.09732 191.613 7.14552 196.734C7.41152 197.412 8.31592 200.378 8.47552 201.03C9.28682 203.783 9.80552 208.571 12.9975 209.329C14.5802 209.701 8.42232 218.373 13.6492 222.935C14.6334 223.786 15.857 224.398 15.857 224.691C15.857 229.585 17.0939 230.09 16.389 230.636C14.6866 231.966 14.5935 232.205 14.3142 232.79C13.9223 233.906 13.7964 235.098 13.9465 236.271C14.0966 237.444 14.5185 238.566 15.1787 239.547C16.6018 241.821 11.9335 253.086 14.0748 253.286C14.8063 253.352 14.7531 252.381 14.7797 252.235C15.4447 248.178 15.5112 249.123 15.9102 246.995C16.2161 245.399 16.4023 242.832 16.6949 241.901C17.2269 240.225 16.5752 239.241 15.6841 237.498C15.0058 236.168 14.7797 233.508 16.4023 232.325C18.7564 230.649 15.6974 230.769 25.1138 231.101C26.4438 231.101 26.6965 230.862 28.9309 230.197C34.6765 228.481 31.3249 229.665 34.6499 229.758C37.5809 229.99 40.5238 229.492 43.2151 228.308C43.8668 227.949 44.3589 228.228 46.0613 228.308C52.9773 228.415 51.1552 228.627 55.7437 227.191C55.8964 227.152 56.0566 227.152 56.2092 227.191C57.0343 227.385 57.876 227.501 58.7229 227.537C60.3189 227.71 61.1169 227.138 63.471 226.34C65.8251 225.542 71.9032 225.515 72.9273 225.156C76.7178 223.826 76.6779 223.706 77.5025 223.706C78.766 223.706 78.9522 223.201 80.6014 222.549C81.4445 222.306 82.2098 221.847 82.8225 221.219C83.3944 220.621 87.2514 223.121 86.5598 225.755C85.3761 230.263 87.8898 230.117 88.8873 232.617C92.4916 241.821 92.066 241.382 95.0984 250.133C95.129 250.221 95.1765 250.301 95.2381 250.37C95.2998 250.439 95.3744 250.495 95.4578 250.536C95.5411 250.576 95.6316 250.599 95.724 250.604C95.8163 250.609 95.9088 250.596 95.9962 250.566C96.0835 250.535 96.1639 250.488 96.2329 250.426C96.3019 250.364 96.3581 250.29 96.3982 250.206C96.4384 250.123 96.4617 250.033 96.4669 249.94C96.472 249.848 96.459 249.755 96.4284 249.668C96.189 248.99 91.1084 234.2 90.071 231.806C89.1001 229.705 87.411 229.385 87.6105 227.816C87.785 226.759 87.9004 225.694 87.9563 224.624C87.7807 223.625 87.3437 222.69 86.6896 221.914C86.0354 221.139 85.1876 220.55 84.2323 220.208C83.4875 220.062 83.5673 219.437 83.1949 217.761C82.6762 215.381 82.5964 215.5 83.7535 215.021C85.2037 214.491 86.4189 213.464 87.1835 212.122C87.948 210.78 88.2124 209.211 87.9297 207.693C87.8658 207.364 87.8214 207.03 87.7967 206.696C89.6454 206.509 89.6188 206.842 90.7759 206.443C100.259 203.264 98.3436 204.807 102.746 202.759C103.398 202.453 102.826 201.522 102.108 201.828C100.258 202.576 98.3308 203.115 96.3619 203.437C93.3295 203.929 90.6429 205.751 88.5282 205.485C86.8258 205.485 87.3312 205.738 85.9613 204.155C85.3331 203.334 84.9051 202.378 84.7111 201.362C84.5914 200.644 86.1475 202.692 88.9937 201.588C92.6379 200.192 91.3611 200.032 96.2821 199.514C108.053 198.29 107.534 194.061 108.252 196.002C109.582 199.713 106.816 199.208 110.912 202.214C112.694 203.544 109.901 205.273 111.75 209.316C113.386 212.88 113.479 211.524 116.019 219.863C116.79 222.676 117.197 225.577 117.23 228.494C117.23 228.494 117.868 233.415 117.881 233.641C117.881 236.115 120.235 247.7 120.302 248.178C120.701 250.838 120.807 251.503 121.526 251.41C122.856 251.251 121.1 251.197 118.453 227.47C117.349 217.588 117.283 220.661 114.862 212.707C114.636 211.976 114.862 212.601 118.054 212.641C119.774 212.765 121.479 213.046 123.148 213.479C127.138 213.944 127.298 212.907 135.557 212.149C140.757 211.657 143.311 214.184 144.402 212.987C145.08 212.242 145.146 211.657 146.037 208.371C147.141 204.381 147.367 204.98 148.697 200.91C149.522 198.357 149.017 197.705 149.788 197.665C150.959 197.514 152.102 197.191 153.18 196.707C155.199 196.253 157.152 195.543 158.992 194.593C159.79 194.247 158.992 194.899 162.822 201.482C164.152 203.836 164.338 204.448 165.402 204.142C170.47 202.706 169.725 201.123 173.635 200.245C176.029 199.7 178.955 196.907 179.78 196.468C180.883 195.843 180.365 194.659 182.892 200.99C183.889 203.464 185.233 203.876 185.911 206.762C186.137 207.733 185.193 207.76 183.956 213C172.983 259.43 179.194 253.259 178.942 243.949C178.942 243.297 184.661 212.308 187.121 207.507C188.145 205.512 189.555 204.488 189.289 202.692C189.165 202.321 189.132 201.924 189.195 201.538C189.257 201.151 189.413 200.785 189.648 200.471C190.233 199.913 190.646 200.977 191.617 200.844C192.648 201.354 193.828 201.476 194.942 201.189C195.713 201.056 195.66 200.511 195.912 200.751C196.394 201.339 197.067 201.739 197.814 201.881C200.581 202.546 201.379 202.865 202.735 202.067C204.092 201.269 204.065 201.083 204.491 201.469C205.546 202.284 206.829 202.749 208.162 202.799C209.52 203.001 210.908 202.798 212.152 202.214C214.719 201.429 213.482 201.921 214.453 201.934C216.501 201.934 217.272 201.203 218.35 201.455C219.67 201.821 221.076 201.732 222.34 201.203C224.015 200.671 223.749 201.602 226.037 201.416C228.325 201.229 228.325 199.687 229.894 200.086C230.812 200.273 231.76 200.267 232.676 200.068C233.592 199.869 234.456 199.481 235.214 198.928C235.64 198.49 236.783 200.032 237.661 200.498C237.924 200.808 238.095 201.185 238.156 201.586C238.217 201.988 238.165 202.398 238.007 202.772C237.781 203.477 237.768 203.437 238.007 206.629C238.22 209.369 240.92 212.854 241.438 215.061C246.027 234.4 244.644 224.371 250.748 248.391C251.102 249.846 251.334 251.327 251.44 252.82C251.613 253.512 252.637 253.671 252.677 252.74C252.85 249.362 248.408 234.107 245.894 226.632ZM230.945 122.094C233.817 122.453 234.482 122.387 236.012 123.504C245.322 130.354 230.905 168.285 229.362 174.722C226.702 186.081 221.874 196.481 212.577 189.499C211.513 188.687 210.689 187.663 205.475 181.705C182.267 155.105 189.914 158.709 172.332 158.51C171.503 158.435 170.704 158.162 170.004 157.712C169.166 157.326 167.956 156.914 166.666 156.196C164.844 155.122 163.105 153.913 161.465 152.578C161.173 152.365 160.894 152.112 161 151.873C161.199 151.408 162.33 151.674 162.769 151.873C163.531 152.111 164.249 152.47 164.897 152.937C167.317 154.85 170.172 156.134 173.209 156.674C173.741 156.807 173.555 157.393 174.327 156.289C174.752 155.69 174.739 155.57 175.045 155.664C175.351 155.757 175.138 156.129 175.138 156.794C175.155 156.886 175.203 156.969 175.275 157.028C175.347 157.088 175.437 157.121 175.53 157.121C175.623 157.121 175.714 157.088 175.785 157.028C175.857 156.969 175.906 156.886 175.923 156.794C175.975 156.516 176.041 156.241 176.122 155.969C177.11 156.427 178.133 156.805 179.181 157.1C179.593 157.18 179.979 156.648 179.447 156.382C176.874 155.187 174.156 154.338 171.361 153.855C171.274 153.821 171.195 153.77 171.128 153.706C171.061 153.641 171.007 153.564 170.97 153.479C170.933 153.394 170.913 153.302 170.912 153.209C170.91 153.116 170.927 153.023 170.962 152.937C171.041 152.738 171.121 152.405 172.105 152.472C172.77 152.472 173.688 152.565 174.021 152.605C182.878 153.748 180.777 152.804 185.512 152.711C186.247 152.755 186.98 152.84 187.706 152.964C188.132 152.964 188.238 152.684 187.972 152.485C186.749 151.58 185.379 151.753 181.442 152.192C179.728 152.35 177.999 152.206 176.335 151.767C175.071 151.607 173.475 151.767 174.42 151.048C174.805 150.782 174.752 150.357 174.313 150.131C173.874 149.905 173.821 149.679 174.313 149.346C175.031 148.774 174.686 148.774 175.51 149.16C178.063 150.282 180.837 150.809 183.623 150.703C185.15 150.476 186.71 150.708 188.105 151.368C190.592 153.19 189.435 152.365 192.348 156.063C194.144 158.324 201.246 164.734 206.486 168.95C208.8 170.812 213.615 174.536 215.211 176.013C216.062 176.784 216.421 176.837 216.86 176.372C217.552 175.64 213.176 173.166 213.375 172.382C213.934 170.014 221.01 143.667 223.35 135.82C224.379 131.582 226.143 127.557 228.564 123.93C229.13 123.069 229.968 122.422 230.945 122.094ZM173.861 166.57C173.861 165.811 173.409 161.808 173.289 160.265C173.289 159.906 173.076 159.574 173.701 159.521C174.327 159.467 174.42 159.294 174.499 160.252C174.579 161.21 175.138 166.304 175.231 166.756C175.231 166.858 175.272 166.956 175.344 167.029C175.416 167.101 175.514 167.141 175.617 167.141C175.719 167.141 175.817 167.101 175.889 167.029C175.962 166.956 176.002 166.858 176.002 166.756C176.082 166.038 175.683 165.665 176.441 165.572C177.771 165.399 179.248 166.357 178.383 167.102C176.8 168.432 171.627 168.844 170.656 168.112C169.193 167.008 172.93 165.12 173.023 166.264C173.05 167.168 173.914 167.274 173.861 166.57ZM179.181 167.501C180.285 166.716 179.607 164.841 176.375 164.588C175.71 164.588 175.71 164.827 175.444 161.928C175.218 159.56 175.218 159.414 175.617 159.414H181.562C182.493 159.414 182.32 159.747 182.24 160.053C179.261 172.023 180.578 170.693 178.077 174.683C177.931 174.922 177.891 174.909 177.771 174.616C176.095 170.772 175.444 171.318 175.111 169.695C174.845 168.737 176.242 169.629 179.194 167.501H179.181ZM179.966 173.818C180.923 172.262 183.384 160.199 183.41 160.013C183.437 159.826 183.41 159.654 183.809 159.733C184.906 160.053 185.897 160.659 186.682 161.489C187.321 162.141 187.001 162.274 187.241 166.25C187.786 175.56 191.989 180.88 186.496 186.812C185.898 187.451 185.898 187.052 185.086 185.855C181.096 179.949 181.282 181.093 179.593 178.353C179.327 177.914 178.915 176.731 178.742 176.518C178.37 176.039 178.662 175.973 179.979 173.818H179.966ZM164.139 125.207C164.1 124.459 163.998 123.716 163.833 122.985C163.261 120.325 163.234 120.419 163.288 120.113C163.527 119.469 163.657 118.791 163.673 118.104C163.673 117.892 163.673 117.759 163.859 117.679C164.591 117.306 165.07 116.881 164.937 115.019C164.618 111.268 164.325 111.92 165.056 111.202C166.107 110.151 174.872 103.634 176.455 101.479C177.159 100.548 177.239 100.828 180.923 98.4736C181.203 98.2874 181.721 97.3298 182.12 98.1145C183.45 100.854 181.269 107.597 183.45 112.824C185.166 116.814 190.207 116.149 190.207 116.136C197.189 115.976 197.841 115.218 199.916 120.658C200.288 121.629 199.144 120.764 197.176 122.214C195.753 123.265 196.112 123.305 195.74 123.438C191.257 125.047 190.127 128.558 188.544 132.907C186.789 137.682 184.288 149.652 183.889 149.679C183.065 149.679 182.24 149.851 181.415 149.812C179.383 149.601 177.403 149.039 175.563 148.149C174.765 147.697 175.47 148.588 176.095 145.356C176.548 143.133 176.762 140.868 176.734 138.6C176.734 129.103 176.734 132.335 176.614 128.758C176.614 127.747 175.284 126.975 174.287 126.789C171.577 126.515 168.84 126.893 166.307 127.893C164.391 128.505 164.232 129.516 164.032 129.01C163.704 128.306 163.433 127.577 163.221 126.829C163.394 126.457 164.205 126.869 164.139 125.207ZM195.035 125.207L188.318 147.817C187.653 149.679 187.893 150.104 187.321 149.931C184.328 149.027 184.74 151.953 187.321 141.725C188.358 137.802 190.925 126.018 195.035 125.233V125.207ZM164.777 130.327C165.048 129.67 165.556 129.138 166.2 128.837C168.835 127.711 171.726 127.321 174.566 127.707C175.816 128.066 175.896 130.101 170.257 131.205C166.134 132.043 164.445 131.165 164.777 130.354V130.327ZM165.416 132.216C168.315 133.027 173.848 131.644 175.111 130.553C175.909 129.862 175.67 129.436 175.696 134.423C175.696 134.623 175.311 134.423 174.779 134.344C173.902 134.179 173.01 134.116 172.119 134.157C168.554 134.344 167.065 134.769 166.054 136.352C165.894 136.591 165.961 136.485 165.402 134.144C164.937 132.389 164.684 132.029 165.416 132.242V132.216ZM167.171 136.126C168.185 135.496 169.344 135.139 170.536 135.088C171.917 134.789 173.345 134.789 174.726 135.088C175.311 135.235 175.949 135.833 175.524 136.312C174.068 137.581 172.237 138.338 170.31 138.467C168.475 138.36 166.32 138.334 166.32 137.456C166.459 136.943 166.757 136.487 167.171 136.152V136.126ZM166.48 138.706C167.964 139.261 169.563 139.443 171.135 139.238C172.742 138.937 174.271 138.312 175.63 137.403C175.822 140.355 175.562 143.32 174.859 146.194C173.741 149.851 169.685 148.987 168.395 145.423C168.062 144.531 166.293 139.69 166.48 138.733V138.706ZM172.824 151.275C172.159 151.275 172.491 151.128 172.225 150.237C172.132 149.931 172.225 149.812 172.558 149.785C172.89 149.758 172.97 149.705 173.036 150.144C173.196 151.408 173.223 151.314 172.824 151.301V151.275ZM168.634 147.963C169.183 148.61 169.881 149.112 170.669 149.426C171.121 149.612 171.041 149.692 171.174 150.982C171.174 151.381 171.041 151.62 170.603 151.341C170.164 151.062 169.366 150.33 168.634 149.718C166.998 148.388 167.145 148.388 165.642 147.258C165.469 147.138 164.857 146.779 165.123 146.407C165.259 146.281 165.43 146.201 165.614 146.177C165.797 146.153 165.984 146.187 166.147 146.274C167.061 146.712 167.9 147.291 168.634 147.989V147.963ZM169.964 153.083C169.964 154.413 171.188 154.413 173.409 155.171C173.648 155.265 173.648 155.358 173.662 155.477C173.675 155.597 173.582 155.836 173.409 155.823C172.709 155.689 172.023 155.489 171.361 155.225C169.064 154.625 166.99 153.373 165.389 151.62C164.242 150.585 163.014 149.642 161.718 148.801C160.721 148.069 161.053 147.763 161.306 147.577C161.362 147.558 161.423 147.558 161.479 147.577C161.918 147.59 162.349 147.699 162.742 147.896C163.863 148.45 164.902 149.157 165.828 149.998C168.182 152.272 169.924 151.993 169.911 153.11L169.964 153.083ZM226.103 120.153C227.471 120.269 228.799 120.672 230 121.336C225.026 126.364 224.946 123.065 212.404 171.477C212.059 172.807 196.444 159.015 192.774 154.586C191.816 153.107 190.594 151.818 189.169 150.782C188.73 150.383 188.81 150.304 188.85 150.117C188.97 149.625 195.5 127.228 196.471 124.754C197.149 123.105 197.455 123.158 199.929 122.214H200.288C199.477 124.475 199.942 120.325 197.522 132.096C196.684 136.166 195.846 137.416 195.873 139.451C195.873 143.002 199.956 144.359 203.493 144.598C213.176 143.72 211.7 143.667 219.307 129.223C223.962 120.352 224.454 120.046 226.05 120.179L226.103 120.153ZM218.443 118.49C218.456 118.33 218.517 118.178 218.617 118.053C218.717 117.928 218.851 117.835 219.004 117.786C219.157 117.737 219.32 117.735 219.474 117.779C219.628 117.823 219.766 117.912 219.87 118.034C219.973 118.156 220.038 118.306 220.057 118.466C220.075 118.625 220.046 118.786 219.973 118.929C219.9 119.071 219.787 119.189 219.647 119.267C219.507 119.345 219.347 119.38 219.187 119.368C219.079 119.364 218.973 119.34 218.874 119.295C218.775 119.25 218.686 119.187 218.612 119.108C218.538 119.029 218.48 118.936 218.442 118.834C218.404 118.733 218.386 118.625 218.389 118.517L218.443 118.49ZM219.214 120.179C220.411 120.179 220.225 119.581 220.65 119.727C224.241 121.057 223.975 118.397 216.966 131.245C216.82 131.511 215.131 135.235 214.306 136.631C210.782 142.975 209.611 142.696 205.355 143.281C202.695 143.281 201.818 143.414 200.129 142.683C195.567 140.741 196.976 139.211 198.134 134.41C198.945 130.979 200.315 122.161 200.953 123.384C201.365 124.182 199.53 124.887 200.873 126.51C201.818 127.654 202.842 126.51 203.906 127.042C205.821 127.906 205.236 126.257 207.257 126.789C209.279 127.321 208.986 125.539 209.917 125.885C211.899 126.563 212.936 125.273 212.91 124.156C212.91 123.89 212.91 123.996 213.096 124.049C213.377 124.194 213.689 124.266 214.004 124.259C214.32 124.252 214.629 124.167 214.903 124.012C215.177 123.856 215.409 123.634 215.576 123.367C215.744 123.1 215.842 122.795 215.862 122.48C215.956 121.842 216.647 122.786 217.618 122.267C219.32 121.483 218.27 120.219 219.161 120.206L219.214 120.179ZM201.711 124.395C202.017 124.182 202.908 124.542 202.855 125.366C202.656 127.627 200.222 125.433 201.658 124.422L201.711 124.395ZM205.701 125.526C205.701 127.188 203.932 126.443 203.773 125.965C203.613 125.486 204.651 123.744 205.582 125.552L205.701 125.526ZM206.965 125.246C207.029 124.993 207.174 124.767 207.378 124.604C207.582 124.441 207.834 124.349 208.095 124.342C209.425 124.342 209.199 126.217 207.949 126.191C207.682 126.21 207.418 126.125 207.213 125.954C207.007 125.783 206.875 125.539 206.845 125.273L206.965 125.246ZM212.192 123.77C212.274 123.957 212.306 124.162 212.284 124.365C212.262 124.568 212.188 124.762 212.068 124.927C211.949 125.093 211.788 125.224 211.602 125.308C211.416 125.392 211.211 125.426 211.008 125.406C208.481 124.861 211.301 122.32 212.072 123.797L212.192 123.77ZM214.147 121.443C214.825 121.177 215.823 122.4 214.878 123.251C213.349 124.542 212.404 122.094 214.027 121.469L214.147 121.443ZM217.179 121.709C215.025 121.549 216.128 119.687 217.086 119.687C218.549 119.714 217.977 121.802 217.059 121.682L217.179 121.709ZM228.298 86.9957C227.699 88.4055 230.147 89.4695 226.635 93.2068C224.68 95.2683 226.356 97.1968 223.63 99.0721C220.384 101.333 220.212 101.426 220.557 102.61C220.903 103.794 219.493 104.459 218.642 104.911C216.966 105.842 216.687 103.966 215.304 104.911C214.147 105.669 214.187 103.927 214.173 103.9C213.907 103.275 215.956 102.118 216.554 100.429C216.82 99.6839 217.166 100.056 217.498 99.91C220.398 98.58 220.557 98.58 220.544 98.1145C220.544 96.5185 217.192 99.3115 217.365 98.4603C217.643 97.7176 217.741 96.9202 217.654 96.1323C217.566 95.3445 217.294 94.5883 216.86 93.925C216.714 93.7255 216.7 93.6058 216.98 93.5792C219.718 93.0958 222.311 91.9951 224.561 90.3606C224.933 90.0281 224.654 88.9109 223.616 89.6823C222.087 90.8128 216.966 93.1137 214.918 92.2492C212.87 91.3847 210.356 91.5044 208.986 93.5792C208.72 93.9915 209.252 95.1087 209.944 94.0846C211.141 92.3024 212.923 92.7546 214.878 93.6191C215.41 93.8452 215.65 94.3905 215.969 94.8161C217.379 96.6249 215.118 100.575 214.572 101.147C211.912 103.966 212.444 103.262 212.085 103.687C211.527 104.339 211.101 102.796 209.425 103.115C208.095 103.381 208.095 103.634 207.803 103.115C207.51 102.597 207.324 102.357 206.991 102.503C206.393 102.756 206.672 103.434 207.098 104.166C207.523 104.897 206.539 106.573 208.242 107.611C208.707 107.856 209.234 107.958 209.758 107.903C210.281 107.849 210.776 107.641 211.181 107.305C212.511 106.6 211.859 105.549 212.152 105.15C212.259 105.015 212.402 104.914 212.564 104.858C212.963 104.698 212.963 104.658 213.109 105.03C213.708 106.666 215.184 106.028 215.104 106.866C214.785 110.138 218.336 115.963 217.631 118.836C216.381 119.075 215.463 119.022 215.144 120.671C215.064 121.084 213.921 120.246 212.764 121.642C212.152 122.374 212.67 122.972 212.218 122.759C210.888 122.015 209.558 123.464 209.558 123.93C209.558 124.395 209.226 123.93 209.159 123.93C207.084 122.507 206.499 125.047 206.153 124.621C206.04 124.438 205.888 124.28 205.708 124.161C205.529 124.041 205.325 123.961 205.112 123.927C204.898 123.893 204.68 123.905 204.472 123.963C204.264 124.021 204.071 124.123 203.906 124.262C203.427 124.621 203.52 124.129 202.735 123.77C201.405 123.158 201.126 115.351 196.418 114.886C191.71 114.42 187.587 116.083 185.312 113.303C181.761 108.967 185.711 98.8859 182.466 96.5185C177.851 93.1669 183.504 95.3082 184.967 91.1054C186.43 86.9026 185.193 81.3432 189.276 76.4754C190.414 75.013 191.758 73.7229 193.266 72.645C193.984 72.2194 193.718 73.2036 195.141 73.5361C195.559 73.6746 195.967 73.839 196.365 74.0282C195.46 74.8528 194.888 75.2917 194.729 76.0365C194.476 77.1936 195.354 77.6059 195.74 77.0074C196.125 76.4089 195.407 76.1828 197.309 74.9725C197.584 74.8293 197.868 74.7049 198.16 74.6001C199.065 74.6001 196.232 74.8395 204.93 76.2094C205.435 76.2892 203.52 77.034 201.858 78.2443C200.661 79.1221 200.754 80.758 201.618 80.4654C202.27 80.2393 201.685 79.3881 204.278 78.0847C212.431 74.0947 213.389 77.3532 220.238 72.6716C220.438 72.5386 220.73 72.3391 220.97 72.4322C222.566 73.0174 223.044 72.8445 223.696 74.9725C224.268 76.7813 225.611 76.4621 226.649 77.2335C227.266 77.8264 227.668 78.6078 227.793 79.4546C228.218 81.2235 227.287 81.4496 228.192 82.5003C229.096 83.551 228.724 85.7721 228.178 87.0223L228.298 86.9957ZM209.306 106.853C209.133 106.821 208.969 106.755 208.822 106.659C208.676 106.564 208.549 106.44 208.45 106.296C208.351 106.151 208.282 105.988 208.246 105.817C208.21 105.645 208.209 105.469 208.242 105.296C208.242 104.618 208.813 103.966 209.984 104.259C211.62 104.592 210.848 107.198 209.306 106.853ZM195.407 67.7107C195.952 65.7955 195.62 65.995 196.577 65.3566C197.207 65.1106 197.901 65.0858 198.546 65.2864C199.192 65.487 199.75 65.901 200.129 66.4605C200.474 67.0058 201.193 66.8994 201.459 69.6924C201.459 72.3524 199.863 74.1612 199.104 73.9617C197.457 73.6998 195.887 73.0826 194.503 72.1529C194.037 71.6342 194.715 70.1047 195.407 67.7107ZM220.398 60.7947C221.289 60.2361 222.007 59.1987 220.65 58.0283C220.158 57.6027 219.733 56.6983 220.903 55.7274C221.302 55.3949 221.701 55.4348 221.688 55.7274C221.688 57.1239 221.688 57.616 222.872 57.9086C224.055 58.2012 224.135 58.3608 224.388 58.7731C224.773 59.3982 225.319 59.1056 225.718 58.6933C228.564 55.754 226.21 56.0333 227.394 54.3841C228.724 52.4556 230.466 51.9635 231.224 52.8546C231.556 53.2403 231.224 54.0915 230.027 55.9136C229.468 56.7914 229.428 57.4165 230.492 57.5894C232.328 57.882 232.501 57.6692 232.514 58.547C232.527 59.4248 232.7 60.143 233.392 60.2228C234.722 60.3558 235.493 58.8928 236.052 57.7623C236.504 56.9377 238.273 56.2461 238.579 58.0416C238.576 58.4919 238.475 58.9361 238.282 59.3429C238.089 59.7497 237.809 60.1091 237.462 60.3957C236.531 61.1405 236.983 62.2577 238.299 62.3508C238.502 62.4242 238.687 62.5373 238.845 62.6835C239.002 62.8297 239.129 63.006 239.217 63.202C239.377 63.867 239.776 63.9867 240.441 63.7606C241.106 63.5345 241.425 61.739 242.223 61.9518C242.742 62.0848 243.354 62.4306 243.367 62.8961C243.318 63.5762 243.113 64.236 242.768 64.8246C242.223 65.8354 243.167 66.1546 244.098 66.1546C245.029 66.1546 245.801 65.4497 245.934 66.8329C246.04 67.8437 245.508 68.5885 244.125 68.4821C243.673 68.4821 243.088 68.3757 242.609 68.3757C241.279 68.3757 241.345 71.3416 243.314 71.7406C245.282 72.1396 246.346 70.4106 247.011 71.2352C247.351 71.5775 247.584 72.0107 247.683 72.4826C247.782 72.9546 247.743 73.4451 247.57 73.8952C247.357 75.1321 246.346 75.305 245.295 75.6508C243.965 76.0631 244.085 78.3108 245.867 78.6832C246.532 78.8029 246.679 78.9758 246.758 80.1196C246.838 81.2634 246.226 80.6915 244.95 81.3033C243.673 81.9151 244.245 83.418 245.415 84.0963C246.266 84.6017 244.005 85.4263 246.014 87.1952C246.865 87.9932 244.856 88.8178 243.819 89.1769C243.526 89.2833 243.234 88.9641 243.088 88.6848C241.917 86.4371 240.175 88.2459 241.039 90.4005C241.412 91.3182 241.132 91.398 240.494 91.8635C240.076 92.1196 239.609 92.285 239.124 92.3492C238.638 92.4133 238.144 92.3747 237.674 92.2359C236.93 92.0497 237.515 90.334 236.996 89.2966C236.717 88.7247 236.278 88.4454 235.028 88.6316C233.778 88.8178 233.871 90.2409 233.804 91.6374C233.804 93.2866 231.716 92.7812 231.689 92.9674C229.774 92.7812 229.029 92.8211 229.561 90.3074C229.907 88.7513 228.896 88.0331 229.282 87.1553C229.725 86.3758 229.949 85.4917 229.933 84.5956C229.917 83.6994 229.66 82.8242 229.189 82.0614C228.883 81.5959 228.976 81.0772 228.936 80.2925C228.843 78.7497 228.59 76.7414 226.409 75.8104C225.678 75.5045 224.973 75.3981 224.813 74.6134C224.745 73.9527 224.477 73.3286 224.044 72.8247C223.612 72.3208 223.035 71.9611 222.393 71.7938C219.866 71.0224 221.329 72.5652 218.762 65.8753C218.469 65.1039 219.041 64.5453 218.642 63.0956C218.243 61.6459 219.733 61.2336 220.398 60.7947ZM219.387 71.1687C219.507 71.5012 219.813 71.8204 219.267 72.2593C218.406 72.751 217.518 73.195 216.607 73.5893C215.65 74.0814 213.734 70.9293 214.958 67.9767C215.427 66.9873 216.227 66.1925 217.219 65.729C217.525 66.0482 217.325 65.5295 219.387 71.1421V71.1687ZM238.22 33.0243C238.845 33.1706 239.55 35.405 237.9 37.2936C236.251 39.1822 235.906 39.8472 234.416 40.5255C233.415 40.9806 232.389 41.3802 231.344 41.7225C231.137 41.7713 230.92 41.7461 230.731 41.6513C230.541 41.5565 230.391 41.3981 230.306 41.2038C230.219 41.0388 230.187 40.8498 230.216 40.6652C230.244 40.4805 230.332 40.3102 230.466 40.1797C232.049 38.996 232.714 38.9428 233.126 38.2512C233.126 38.1049 233.525 37.4931 233.871 37.3734C236.052 36.5621 238.14 33.0243 238.22 33.0243ZM241.771 15.6013C242.236 15.1225 242.582 15.0294 242.728 15.7476C242.814 16.1429 242.804 16.5528 242.7 16.9435C242.596 17.3343 242.401 17.6948 242.13 17.9953C241.704 18.514 241.013 19.2189 239.763 20.908C237.741 23.568 237.103 23.7143 235.36 26.1083C234.429 27.0659 234.722 26.8664 233.857 25.962C232.993 25.0576 233.259 25.4167 233.525 24.499C233.623 23.8822 233.765 23.2733 233.95 22.6769C236.797 19.2721 239.55 18.1017 241.744 15.6013H241.771ZM213.362 41.8821C215.889 39.5812 217.764 38.065 218.828 36.2296C219.653 34.8198 222.06 26.9196 225.186 24.7517C227.846 22.9695 236.092 13.2206 237.156 12.8748C237.435 12.7684 237.661 13.194 237.701 13.3536C237.94 14.524 236.118 17.0111 234.456 18.7933C233.379 19.9504 232.581 20.8947 232.022 21.4533C230.24 23.435 224.707 24.9512 222.379 30.3909C221.929 31.3024 221.568 32.2556 221.302 33.2371C220.637 35.8306 219.972 35.5513 220.052 36.8547C220.052 37.3734 220.837 37.0409 221.089 36.602C222.419 34.3543 221.98 32.9844 223.457 30.351C225.465 26.7733 223.616 29.4599 227.447 25.6827C227.447 25.6827 230.931 23.3951 231.543 23.0227C232.155 22.6503 232.434 22.5173 232.554 22.9429C232.612 23.3692 232.562 23.8034 232.409 24.2055C232.256 24.6075 232.004 24.9646 231.676 25.2438C229.854 27.4649 225.917 28.5821 226.782 32.5588C227.234 34.607 226.782 38.0916 224.986 39.4083C224.919 39.465 224.864 39.5345 224.823 39.6127C224.783 39.6908 224.758 39.7762 224.751 39.8639C224.743 39.9516 224.753 40.0399 224.78 40.1237C224.807 40.2076 224.85 40.2853 224.906 40.3526C224.963 40.4198 225.033 40.4752 225.111 40.5156C225.189 40.556 225.274 40.5806 225.362 40.588C225.45 40.5955 225.538 40.5855 225.622 40.5588C225.706 40.5321 225.783 40.4891 225.851 40.4324C228.218 38.4773 227.939 36.8148 228.231 33.543C227.952 31.814 227.846 31.7342 228.085 30.9495C228.524 29.5397 230.479 27.6644 230.905 27.957C232.487 29.0077 232.98 29.6328 233.379 29.1673C234.23 28.2363 231.423 27.2787 231.929 26.8531C232.847 26.0817 232.594 26.0418 233.259 26.9595C233.764 27.5846 233.764 28.2895 234.669 28.0235C234.988 27.9038 235.999 27.2122 236.544 27.6378C238.353 29.287 238.06 28.5555 236.903 32.1864C235.999 35.0193 231.583 37.1739 231.144 37.0276C230.87 36.8611 230.656 36.6112 230.534 36.3144C230.412 36.0177 230.388 35.6897 230.466 35.3784C231.902 33.3169 233.884 33.0509 234.363 31.5214C234.443 31.2421 235.44 30.2978 234.842 29.8722C234.482 29.6195 233.844 30.0584 233.698 30.4973C232.953 32.9312 228.152 33.7558 229.708 36.8946C229.854 37.2138 230.306 38.4241 231.556 37.9719C232.155 37.7591 230.891 38.5571 229.814 39.4349C229.605 39.5851 229.434 39.7815 229.313 40.0087C229.192 40.2359 229.125 40.4879 229.117 40.7452C229.11 41.0024 229.161 41.258 229.268 41.492C229.375 41.7261 229.535 41.9324 229.734 42.0949C230.147 42.5205 228.271 43.119 227.673 43.1323C225.984 43.1323 220.225 50.7665 215.463 55.9269C215.078 56.3525 214.945 56.6318 214.612 55.6343C214.28 54.6368 211.354 47.0957 210.503 44.5953C210.13 43.6776 210.782 44.2894 213.362 41.8821ZM211.207 49.8621C211.646 50.966 208.175 50.8596 207.47 50.1015C206.433 48.9843 205.914 48.4656 205.967 47.3617C206.047 45.7524 206.087 43.9436 208.055 42.9993C209.226 42.5205 210.808 48.9444 211.207 49.9419V49.8621ZM202.749 39.2221C201.246 39.3285 202.456 37.8921 201.658 37.6926C200.155 37.3335 201.246 36.6685 201.286 35.937C201.326 35.2055 200.461 35.0858 200.7 34.3011C200.94 33.5164 202.097 34.4474 202.203 33.3169C202.203 32.6785 202.469 31.0692 203.773 31.7209C204.797 32.2396 204.97 31.1889 205.475 31.415C205.981 31.6411 205.967 32.745 207.018 32.0534C207.816 31.5214 208.348 32.0534 208.348 32.8248C208.348 33.5962 208.175 34.0085 208.707 34.1548C209.239 34.3011 209.133 34.8065 209.119 35.3385C209.119 36.3227 210.09 36.0833 209.705 36.9079C208.92 38.5039 207.749 37.8655 207.39 38.597C207.031 39.3285 206.752 37.9852 205.715 39.129C205.583 39.1881 205.44 39.2186 205.296 39.2186C205.151 39.2186 205.008 39.1881 204.877 39.129C203.64 38.3975 203.44 39.1157 202.749 39.2221ZM203.493 41.7757C204.079 40.0068 204.212 40.0733 204.69 40.2861C204.888 40.4143 205.119 40.4826 205.355 40.4826C205.591 40.4826 205.822 40.4143 206.02 40.2861C206.353 39.9536 206.752 40.2861 206.832 40.2861C207.244 40.2196 207.51 40.0068 207.683 40.2861C208.017 40.8911 208.263 41.5404 208.414 42.2146C208.587 42.8264 206.632 42.7333 205.754 44.582C204.318 47.6809 205.754 50.6734 207.616 51.3783C208.368 51.6117 209.145 51.7546 209.931 51.8039C211.021 51.9768 211.46 50.8064 211.713 51.4448C214.878 59.345 215.291 61.0607 216.714 64.8911C217.113 65.6891 216.035 65.064 214.426 67.5511C213.922 68.4708 213.683 69.5128 213.737 70.5604C213.791 71.608 214.136 72.6199 214.732 73.4829C215.184 74.0681 215.131 74.4405 214.732 74.5336C212.962 75.0638 211.126 75.3414 209.279 75.3582C203.813 75.6774 205.129 75.5976 200.94 74.7198C200.102 74.5469 201.379 74.0415 201.977 71.7805C202.895 68.3092 200.488 64.1995 197.043 64.7714C196.511 64.8512 196.351 64.9576 196.484 64.4522C197.987 59.1322 197.296 60.8612 199.53 60.6351C203.853 60.1962 205.036 53.6526 201.538 51.9236C200.248 51.0059 199.929 52.3891 203.493 41.7225V41.7757ZM200.541 51.9768C200.887 52.2029 203.081 53.3068 202.922 54.9826C202.855 58.0682 201.459 59.9036 198.32 59.611C197.881 59.611 198.413 58.6002 198.439 58.5204C199.796 53.5196 199.956 51.5512 200.541 51.9236V51.9768ZM187.946 63.1621C191.776 58.5603 189.169 61.2469 198.027 53.6792C198.732 53.0807 198.825 52.8812 198.639 53.5728C197.947 56.2328 197.641 57.0973 195.806 62.6301C194.21 67.4713 193.997 68.6417 193.678 69.187C193.678 69.187 191.75 67.2053 191.018 66.1812C188.89 63.4946 187.361 63.8404 187.946 63.1621ZM174.194 71.0091C177.572 68.3491 178.09 69.6791 182.479 73.1637C183.277 73.8021 184.421 73.2435 182.852 71.9268C177.718 67.6442 177.811 68.8013 178.13 68.0299C178.795 66.4073 178.888 65.995 181.096 65.8088C182.692 65.6625 181.814 63.6808 184.395 63.6808C185.632 63.5345 187.254 64.8379 188.039 65.2768C189.542 66.1147 189.954 67.6708 192.574 69.852C192.986 70.1845 193.239 70.1845 193.306 70.3707C193.372 70.5569 193.439 71.4081 193.093 71.5677C190.752 72.645 191.191 73.3366 190.553 72.7381C189.223 71.4081 185.1 67.1255 184.474 68.4156C184.436 68.4821 184.411 68.556 184.402 68.6325C184.393 68.709 184.4 68.7866 184.423 68.8603C184.445 68.934 184.482 69.0022 184.533 69.0607C184.583 69.1193 184.644 69.1668 184.714 69.2003C185.911 69.8254 186.044 70.2909 189.489 73.4297C190.739 74.6001 188.159 73.7888 185.499 80.7846C184.794 82.6466 186.217 81.7023 182.453 78.9891C179.42 76.7813 179.301 75.4912 175.803 73.5095C174.473 72.7381 174.353 72.9642 174.233 73.3898C174.114 73.8154 173.396 74.6267 173.369 74.2011C173.213 73.07 173.509 71.923 174.194 71.0091ZM149.628 93.2866C149.761 93.2866 151.57 92.7147 152.767 92.3024C155.068 91.5044 155.308 89.9084 157.209 88.8045C158.598 87.8494 159.93 86.8147 161.199 85.7056C164.83 82.8993 165.801 82.6865 167.411 80.6516C168.75 79.3729 170.28 78.3096 171.946 77.4995C172.962 76.8068 173.879 75.9791 174.672 75.039C175.218 74.4937 174.499 73.31 179.553 78.2975C181.309 80.0265 182.679 80.492 183.796 82.1013C184.182 82.6466 184.488 82.6865 184.9 83.3515C184.395 87.3415 184.9 91.4911 181.801 92.6615C180.844 93.0472 179.141 93.3132 179.514 95.0821C179.886 96.851 181.256 96.4121 180.365 97.1835C178.928 98.3539 176.88 99.2583 175.71 100.721C174.087 102.401 172.305 103.92 170.39 105.257C166.107 109.06 164.897 110.39 164.445 110.483C163.992 110.577 164.219 109.818 163.593 108.914C163.193 108.459 162.698 108.096 162.144 107.85C160.335 106.839 159.643 104.525 159.337 103.86C158.273 101.759 158.5 102.53 155.347 97.9948C154.164 96.3057 153.725 95.3348 151.929 94.8826C151.105 94.7629 148.87 93.526 149.628 93.2866ZM146.875 93.2866C154.855 98.8194 151.211 93.8319 155.693 100.349C156.934 101.806 157.993 103.41 158.845 105.124C161.652 110.829 162.543 107.451 163.487 110.949C163.907 112.373 164.152 113.842 164.219 115.325C164.245 115.576 164.221 115.83 164.148 116.072C164.075 116.314 163.954 116.54 163.793 116.734C163.62 116.934 163.54 116.841 163.514 116.734C163.487 116.628 163.354 115.325 162.809 112.917C162.809 112.691 162.516 111.96 162.263 111.96C162.011 111.96 161.984 112.345 162.077 112.824C162.436 114.726 163.128 117.665 162.649 118.862C162.583 118.729 161.319 115.205 160.734 113.237C160.481 112.359 160.202 111.654 159.963 111.694C159.854 111.71 159.757 111.768 159.69 111.855C159.623 111.941 159.592 112.05 159.603 112.159C159.697 113.582 164.378 125.06 163.261 126.031C162.915 126.324 162.795 125.872 162.383 124.98C161.372 122.813 159.311 116.814 158.539 116.522C158.192 115.517 157.93 114.485 157.755 113.436C157.622 112.838 157.396 112.252 157.13 112.266C156.864 112.279 156.691 113.037 156.771 113.303C156.771 113.303 158.659 120.139 159.231 123.584C159.383 124.284 159.477 124.996 159.51 125.712C159.518 125.859 159.476 126.004 159.391 126.124C159.111 126.417 158.899 126.257 158.486 125.419C157.763 123.693 157.172 121.915 156.717 120.099C156.238 118.533 155.633 117.007 154.909 115.537C154.678 114.755 154.258 114.043 153.685 113.463C152.967 113.05 152.741 113.463 152.701 115.138C152.635 116.988 152.448 118.832 152.142 120.658C151.999 121.079 151.798 121.477 151.544 121.842C151.185 122.414 150.919 122.533 150.573 122.307C150.227 122.081 150.573 120.591 150.679 119.754C150.932 117.381 150.673 114.982 149.921 112.718C149.123 110.417 150.054 108.156 149.309 104.166C148.884 101.892 148.418 101.825 148.312 102.45C148.019 104.086 145.838 101.32 141.569 98.7529C140.717 98.2342 141.436 98.7529 143.87 91.6773C143.976 91.2118 143.923 91.2118 146.875 93.2334V93.2866ZM138.084 47.6942C138.417 48.4257 137.14 48.2528 137.126 48.3459C136.728 48.3069 136.353 48.1408 136.057 47.8721C135.761 47.6034 135.559 47.2463 135.481 46.8539C135.403 46.4614 135.454 46.0544 135.626 45.6931C135.798 45.3319 136.081 45.0355 136.435 44.848C136.807 44.5421 136.661 44.5421 138.084 47.641V47.6942ZM125.915 25.9221C125.932 25.6987 125.963 25.4766 126.008 25.2571C126.154 24.765 125.915 24.5921 125.369 24.898C124.824 25.2039 124.239 25.5364 123.521 25.1507C123.292 25.0232 123.113 24.823 123.012 24.582C122.911 24.3409 122.893 24.0729 122.962 23.8207C123.108 23.1424 123.8 23.2754 124.013 23.302C124.704 23.3951 124.691 23.1956 124.358 22.7966C124.026 22.3976 123.654 21.2671 124.771 20.8814C124.935 20.8119 125.111 20.7761 125.289 20.7761C125.468 20.7761 125.644 20.8119 125.808 20.8814C126.38 21.2937 126.646 21.6395 126.992 21.4001C127.338 21.1607 126.872 20.8681 127.151 20.1632C127.299 19.8186 127.568 19.5403 127.908 19.3811C128.247 19.2219 128.633 19.1928 128.992 19.2995C129.352 19.4062 129.659 19.6411 129.857 19.9597C130.055 20.2783 130.128 20.6583 130.064 21.0277C130.05 21.6092 129.875 22.1754 129.559 22.6636C129.359 23.0626 129.559 23.2621 130.117 23.0759C131.447 22.5572 132.192 23.3419 132.059 24.1665C131.926 24.9911 131.447 25.2837 131.008 25.3236C130.57 25.3635 130.676 25.5098 130.609 25.8556C130.463 26.6004 130.091 27.0393 129.439 26.9994C128.787 26.9595 128.468 26.1349 128.176 25.8689C127.992 25.6915 127.752 25.5834 127.497 25.563C126.779 25.563 126.779 26.5472 126.167 26.3078C126.087 26.2834 126.017 26.2314 125.971 26.1608C125.925 26.0903 125.905 26.0058 125.915 25.9221ZM121.925 40.725C122.842 38.4773 123.255 36.469 124.092 39.927C123.427 41.523 122.762 41.8023 121.885 41.9353C121.339 42.0417 121.659 41.3501 121.898 40.7649L121.925 40.725ZM115.86 56.6185C123.84 36.0434 119.85 45.0076 123.334 42.2146C125.436 40.5521 124.877 38.4507 123.693 37.5463C122.935 36.9744 123.228 38.5172 126.859 27.4383C127.005 26.9861 127.151 26.4009 127.524 26.4142C127.896 26.4275 128.388 27.7442 129.319 27.824C130.25 27.9038 129.612 26.8664 132.87 34.8996C133.03 35.2853 136.608 43.2121 136.488 43.9303C136.01 44.1204 135.597 44.4452 135.299 44.8655C135.002 45.2857 134.832 45.7832 134.812 46.2977C134.493 50.2079 138.523 48.7582 138.616 48.7981C139.357 50.2683 139.971 51.7989 140.451 53.3733C139.481 53.3733 138.909 51.8305 138.057 52.3492C137.419 52.7482 138.417 53.2004 137.885 55.9801C137.007 51.9901 134.294 51.4182 133.988 51.6044C133.363 52.0167 134.387 52.4423 133.988 53.9984C133.303 53.2475 132.452 52.6675 131.503 52.3048C130.553 51.9422 129.532 51.8071 128.521 51.9103C127.577 51.9901 126.686 52.296 125.755 52.4157C125.048 52.6046 124.399 52.9656 123.866 53.4664C120.807 55.6742 123.747 53.7856 119.065 54.9693C117.708 55.3018 115.554 57.3766 115.86 56.6185ZM113.585 64.266C113.895 64.1372 114.15 63.9051 114.308 63.6092C114.465 63.3134 114.516 62.9721 114.45 62.6434C114.011 60.808 115.301 57.8288 118.972 56.1796C119.238 56.0732 120.994 55.7008 121.273 55.6476C121.978 55.5013 120.422 57.1372 120.701 58.4672C120.736 59.2511 120.843 60.0302 121.02 60.7947C122.35 62.9493 122.483 63.1089 122.935 63.0823C124.146 63.0823 123.175 61.7523 124.053 60.4223C124.136 60.3019 124.169 60.1536 124.144 60.0094C124.119 59.8651 124.038 59.7364 123.92 59.6509C123.268 59.0258 122.59 61.1671 122.59 61.2735C119.012 57.8022 126.447 50.2744 132.338 54.2644C135.544 56.4456 134.267 59.5844 135.411 59.5046C136.302 59.4381 136.116 56.9909 134.679 54.9028C134.955 54.2854 135.069 53.6081 135.012 52.9344C136.342 53.9718 137.033 54.956 136.94 59.5844C136.94 60.6883 138.709 60.4622 139.121 54.4772C139.121 54.3442 139.254 54.2777 139.374 54.4772C141.023 56.2727 140.239 58.4672 140.013 59.5179C139.786 60.5686 142.087 61.1937 141.183 55.5279C141.183 55.0624 141.05 54.9161 141.529 55.2885C143.896 57.1505 142.513 60.8745 142.513 61.2469C142.513 61.872 143.191 61.8321 143.431 61.4996C144.241 60.5659 144.884 59.4996 145.333 58.3475C145.745 57.4165 145.333 60.4622 144.96 61.2469C144.867 61.4331 144.787 62.7232 145.519 62.4971C146.25 62.271 147.195 60.3425 147.421 60.0632C147.899 59.4248 147.86 59.212 147.58 61.5528C147.416 62.5535 146.952 63.481 146.25 64.2128C145.944 64.4123 146.011 64.0798 145.785 63.6143C145.559 63.1488 144.774 63.2286 144.907 63.9069C147.022 75.6508 144.508 76.0365 144.827 80.9708C145.12 85.5726 143.218 90.8527 141.303 95.6008C137.698 104.379 136.648 101.453 132.352 101.958C129.452 102.291 127.87 101.147 125.702 99.9233C124.267 99.0055 123.028 97.812 122.058 96.4121C121.499 95.8535 121.033 96.3323 121.313 96.9308C122.643 99.8036 128.029 102.929 131.115 102.902C137.419 102.902 134.706 102.716 135.69 105.815C135.956 106.64 136.156 107.624 136.275 107.85C136.326 107.98 136.425 108.084 136.552 108.141C136.679 108.199 136.823 108.204 136.954 108.156C137.991 107.797 136.355 105.948 136.515 103.687C136.515 103.075 136.515 102.942 137.632 102.876C137.845 102.876 138.018 103.82 139.587 104.764C141.688 106.015 138.882 109.153 137.366 112.638C136.262 115.178 136.355 116.495 135.903 116.03C135.131 115.232 134.254 115.537 131.753 115.484C131.248 115.484 130.915 115.165 130.104 114.713C129.04 114.141 128.774 113.276 127.723 111.627C126.673 109.978 126.992 111.481 122.324 108.316C119.158 106.161 120.102 103.966 118.001 102.091C117.87 101.945 117.799 101.755 117.802 101.559C117.908 97.649 116.472 95.9732 116.538 95.0023C116.713 92.6741 116.646 90.3342 116.339 88.0198C116.339 87.275 117.469 87.9267 118.32 86.4637C118.415 86.3218 118.465 86.1553 118.465 85.9849C118.465 85.8145 118.415 85.6479 118.32 85.5061C117.908 85.1071 117.296 85.8519 117.07 86.0647C116.099 86.9824 113.226 86.0647 114.41 83.1254C116.192 84.9475 117.243 84.0032 117.349 83.2983C117.364 83.2064 117.353 83.1121 117.316 83.0265C117.28 82.9408 117.22 82.8672 117.143 82.8143C117.067 82.7614 116.977 82.7313 116.884 82.7275C116.791 82.7237 116.698 82.7464 116.618 82.7929C116.378 82.9392 116.206 83.2451 115.873 83.019C113.652 81.4895 117.735 78.3906 115.208 71.049C113.878 67.059 116.631 68.7215 115.979 65.729C115.886 65.2901 115.394 65.5827 115.368 65.729C115.075 67.059 113.718 67.7639 113.758 68.6151C113.758 68.9875 112.721 68.3624 112.841 67.1388C112.96 66.3408 112.362 64.8911 113.572 64.266H113.585ZM121.565 115.192C120.701 117.426 120.621 117.413 120.235 117.24C118.616 116.243 117.419 114.686 116.871 112.864C115.541 109.034 114.463 109.419 114.862 108.874C116.192 106.932 116.924 106.374 117.23 104.725C117.306 104.223 117.454 103.735 117.669 103.275C119.664 105.722 117.163 106.587 124.704 111.255C125.276 111.508 123.148 111.228 121.592 115.192H121.565ZM115.487 93.5659C114.102 92.0221 113.372 89.9994 113.452 87.9267C113.452 85.7455 113.306 86.3174 114.929 87.2617C115.567 87.6341 115.527 93.4329 115.487 93.5659ZM76.505 63.1621C77.3391 62.0254 78.2884 60.978 79.3379 60.0366C82.9555 57.6559 89.0735 57.6958 90.1774 58.7066C82.1974 60.4489 77.2365 67.3117 79.1783 67.8038C79.9098 67.99 79.6172 66.7797 81.4925 64.6916C83.5562 62.636 86.063 61.0801 88.8208 60.143C96.1757 58.0682 96.3752 62.1912 97.0934 61.3267C97.1812 61.2607 97.2437 61.1666 97.2703 61.06C97.297 60.9535 97.2861 60.841 97.2397 60.7415C96.0427 58.3874 92.1192 58.5071 92.0926 58.5071C92.2742 58.0058 92.6375 57.5909 93.1103 57.3446C93.5832 57.0983 94.1313 57.0385 94.6462 57.1771C95.7576 57.6314 96.9614 57.8138 98.1574 57.7091C101.03 57.4298 103.664 58.1879 105.14 60.8346C103.442 61.0466 101.73 61.1355 100.019 61.1006C99.3943 61.0341 99.3544 61.7922 99.6736 62.005C100.471 62.4047 101.394 62.4717 102.241 62.1912C103.025 61.9252 103.052 62.1912 105.353 62.1247C106.821 62.0492 108.27 62.4929 109.444 63.378C110.619 64.2631 111.444 65.5332 111.777 66.9659C108.638 64.9576 107.255 65.9817 103.956 66.1014C103.525 66.0313 103.11 65.8825 102.733 65.6625C101.709 65.33 102.054 66.2743 102.187 66.4339C103.903 68.4688 107.64 65.7955 110.633 67.6708C119.557 73.2834 111.63 82.6599 112.402 89.5759C112.801 93.2467 115.753 94.5767 116.392 98.9657C117.27 104.286 115.168 106.547 112.056 110.337C111.611 110.826 111.268 111.399 111.047 112.022C110.825 112.645 110.731 113.305 110.768 113.965C110.805 114.625 110.973 115.271 111.263 115.866C111.553 116.46 111.958 116.99 112.455 117.426C113.16 117.998 113.785 117.732 114.37 117.892C114.093 118.402 113.678 118.823 113.172 119.108C112.666 119.392 112.09 119.529 111.511 119.501C110.779 119.501 110.699 119.793 111.152 120.325C111.576 120.702 112.079 120.98 112.624 121.139C113.169 121.298 113.743 121.333 114.304 121.243C114.326 121.244 114.347 121.249 114.366 121.26C114.385 121.271 114.401 121.286 114.413 121.304C114.425 121.323 114.432 121.344 114.434 121.366C114.436 121.387 114.432 121.409 114.423 121.429C114.306 121.626 114.129 121.779 113.918 121.868C113.267 122.186 112.542 122.32 111.82 122.257C111.098 122.194 110.407 121.935 109.822 121.509C109.01 121.057 108.425 121.948 109.609 123.783C111.457 126.63 111.896 126.829 112.415 129.436C113.213 133.426 109.556 134.756 109.941 138.746C110.167 141.06 112.601 140.555 109.848 140.94C107.64 141.246 107.494 138.892 106.683 136.485C105.482 133.553 104.59 130.505 104.023 127.388C103.863 126.683 103.238 127.002 103.278 127.388C103.398 128.638 103.517 129.662 103.664 130.513C102.576 130.491 101.518 130.154 100.618 129.542C99.479 128.608 98.5692 127.425 97.9579 126.084C97.7199 125.567 97.6774 124.981 97.8382 124.435C98.3015 123.125 98.3006 121.695 97.8358 120.385C97.3709 119.075 96.4703 117.965 95.2846 117.24C94.5797 116.974 95.6437 116.375 95.7102 116.163C97.2131 111.933 95.4309 111.308 95.7102 109.779C95.8926 108.61 96.2513 107.475 96.7742 106.414C97.4525 105.39 101.243 108.927 106.177 100.548C111.95 90.7729 109.21 89.3232 110.593 84.5884C111.763 80.5984 110.593 76.6084 109.742 72.7647C111.072 73.4297 110.979 74.7065 111.604 74.0947C112.229 73.4829 110.62 71.9268 109.675 71.4347C106.55 69.5461 104.289 72.3524 100.684 68.4821C100.472 68.256 100.365 67.3782 100.219 67.059C100.073 66.7398 98.8889 66.5403 99.2746 67.5245C100.006 69.2402 98.0244 70.1047 96.189 70.5037C85.549 72.7913 89.6853 86.0248 88.9006 89.5493C87.1982 97.1702 83.2614 98.4337 83.5806 102.849C83.4142 103.783 83.4597 104.742 83.7136 105.656C84.485 107.544 85.3894 109.552 87.411 109.646C87.7568 109.646 88.0893 109.832 88.4351 109.646C88.7809 109.459 88.8474 109.393 88.8208 109.034C88.8208 108.435 88.209 108.568 87.9696 108.528C86.2406 108.222 86.0278 107.956 84.7377 105.15C84.6355 104.266 84.6355 103.374 84.7377 102.49C85.0862 100.559 85.8835 98.7368 87.0652 97.1702C93.2497 87.807 87.9297 83.4047 90.5897 76.9409C91.6537 74.2809 92.0261 73.8021 92.9571 73.2435C96.5215 71.0623 98.982 71.3815 100.073 69.7589C100.232 69.5328 100.379 69.586 100.485 69.7589C101.735 71.7938 104.475 71.7007 107.374 71.7539C108.704 71.7539 108.518 71.98 108.704 72.8711C109.476 75.5385 109.922 78.2894 110.034 81.0639C110.141 82.1811 109.595 79.7339 105.805 80.6516C105.685 80.6876 105.581 80.7639 105.51 80.8677C105.44 80.9715 105.407 81.0965 105.418 81.2215C105.429 81.3465 105.483 81.4639 105.57 81.5539C105.658 81.6439 105.773 81.701 105.898 81.7156C106.619 81.5312 107.366 81.4771 108.106 81.556C108.372 81.612 108.624 81.7214 108.847 81.8777C109.069 82.034 109.258 82.2338 109.401 82.4651C109.544 82.6965 109.638 82.9544 109.679 83.2234C109.719 83.4923 109.704 83.7667 109.635 84.0298C108.452 87.3681 109.782 90.1744 107.946 94.5235C106.111 98.8726 102.294 106.493 97.9047 105.044C92.997 103.474 92.5847 100.947 90.5631 100.083C90.337 100.655 89.938 100.695 91.8931 102.636C95.2846 105.882 95.6703 105.137 95.7767 105.549C95.7767 105.709 95.7767 105.23 94.7925 108.355C94.4866 109.3 94.8856 108.023 91.2148 106.64C85.4692 104.485 88.1957 101.04 86.7726 101.08C85.9214 101.08 85.7219 105.602 89.7784 107.345C91.044 107.723 92.2327 108.321 93.2896 109.114C94.4718 110.377 95.1363 112.038 95.1516 113.769C95.0319 115.91 93.0768 117.054 92.4916 117.665C91.9064 118.277 91.002 119.674 91.9197 119.98C92.8374 120.286 92.3586 119.315 93.7418 118.197C94.726 117.413 97.5323 120.232 96.7875 123.517C96.3885 125.273 93.0502 128.106 96.0427 130.673C96.7996 131.181 97.4879 131.785 98.0909 132.468C99.248 134.876 98.0111 136.525 96.1092 138.094C95.5296 138.52 95.0405 139.056 94.6706 139.673C94.3007 140.29 94.0573 140.974 93.9546 141.685C93.7421 142.874 93.9763 144.099 94.6121 145.125C95.2479 146.151 96.2406 146.906 97.3993 147.245C97.4205 147.245 97.4408 147.253 97.4557 147.268C97.4707 147.283 97.4791 147.303 97.4791 147.324C97.4791 147.346 97.4707 147.366 97.4557 147.381C97.4408 147.396 97.4205 147.404 97.3993 147.404C96.6427 147.736 95.8125 147.863 94.9912 147.775C94.17 147.686 93.3862 147.384 92.7177 146.899C92.5315 145.17 92.4118 144.545 91.9862 144.026C90.9488 142.696 87.677 142.35 86.6662 142.51C86.3603 142.51 86.3869 142.856 84.618 137.868C81.559 129.223 83.4609 131.325 80.096 125.645C79.256 124.131 78.1884 122.753 76.9306 121.562C74.6031 119.621 68.2856 117.014 68.7644 116.362C69.2432 115.71 69.1634 115.218 69.8151 115.138C70.2566 114.774 70.5849 114.292 70.7616 113.748C70.9383 113.203 70.956 112.62 70.8126 112.066C70.1609 109.193 69.0038 109.579 69.4826 108.449C70.5578 105.518 71.3201 102.482 71.7569 99.3913C71.9697 97.6623 72.6746 99.8967 75.9863 96.3323C76.6303 95.5157 76.9805 94.5061 76.9805 93.4661C76.9805 92.4262 76.6303 91.4165 75.9863 90.6C75.2282 89.7222 76.6247 90.4138 78.101 88.206C80.628 84.4288 79.1384 78.9625 75.8932 78.6167C74.5632 78.4837 75.7868 78.4571 75.1085 73.2036C75.042 72.7115 76.0794 73.0839 76.4385 73.4563C76.7976 73.8287 76.8907 74.2942 77.5158 74.0548C78.1409 73.8154 77.5158 72.5253 77.1567 72.1529C75.8267 70.8229 74.9622 71.7406 74.776 70.9692C74.5898 70.1978 73.1534 67.3516 76.505 63.1621ZM92.1325 167.979C88.5681 168.418 81.7585 168.684 78.8325 170.373C78.7353 170.423 78.6581 170.505 78.6136 170.605C78.5692 170.704 78.5602 170.816 78.5881 170.922C78.6161 171.028 78.6793 171.12 78.7673 171.185C78.8553 171.25 78.9628 171.283 79.0719 171.278C80.0599 171.083 81.0764 171.083 82.0644 171.278C83.5563 171.382 85.0552 171.32 86.5332 171.092C88.4693 170.992 90.4092 170.992 92.3453 171.092C93.1433 171.092 93.8748 170.786 94.1408 171.092C95.4708 172.767 90.5232 173.153 88.5681 173.419C87.3995 173.809 86.1663 173.967 84.9372 173.885C83.266 173.935 81.6117 174.235 80.0295 174.776C79.298 175.015 79.5507 175.68 80.0295 175.707C81.7718 175.786 82.5831 174.935 85.1101 175.042C87.6371 175.148 87.2913 174.683 90.8557 174.297C91.401 174.297 91.5074 175.095 90.8557 175.481C89.1799 176.531 87.9297 176.505 85.1234 177.01C84.3653 177.143 84.4318 177.462 81.5191 178.207C80.0295 178.579 78.0079 180.242 75.5208 180.787C72.3022 181.479 72.515 182.117 69.5757 182.117C66.6364 182.117 66.1576 182.809 64.1493 183.846C63.7503 184.046 63.8301 183.966 62.4203 181.692C61.4228 180.069 61.4095 180.162 61.6223 179.976C62.2126 179.363 62.5806 178.571 62.6674 177.724C62.7542 176.878 62.5548 176.027 62.1011 175.308C60.4918 172.648 59.4411 175.68 67.5408 166.942C70.9057 163.284 71.9564 161.875 74.4834 160.984C78.2207 159.654 79.032 159.108 79.8034 159.135C81.7083 159.323 83.6252 159.359 85.5357 159.241C86.8657 159.028 88.0893 159.68 90.2173 159.813C92.1059 159.933 90.9222 161.436 86.9721 161.236C85.2431 161.156 84.5249 161.715 82.6496 161.622C79.4443 161.476 76.1459 163.644 75.9065 164.641C75.6671 165.639 76.505 166.237 77.303 166.277C82.938 166.318 88.5713 166.069 94.1807 165.532C96.1491 165.279 96.3486 166.57 95.6304 166.862C94.5163 167.369 93.3402 167.727 92.1325 167.926V167.979ZM92.9837 169.309C92.8241 169.841 92.7975 169.881 92.2522 169.868C86.7859 169.748 85.4958 170.161 85.2431 169.934C85.8017 169.482 90.8424 169.203 92.7576 169.043C92.997 168.964 93.0635 168.99 92.9837 169.256V169.309ZM92.5847 191.015C92.582 191.08 92.5937 191.145 92.619 191.204C92.6443 191.264 92.6826 191.318 92.731 191.361C92.8166 191.406 92.9161 191.418 93.0097 191.393C93.1033 191.368 93.1842 191.309 93.2364 191.228C93.2997 190.787 93.2997 190.339 93.2364 189.898C93.2364 189.818 93.3295 189.791 93.4492 189.791C94.992 189.712 96.455 189.924 96.8673 190.909C96.9844 191.367 96.9475 191.85 96.7624 192.285C96.5774 192.72 96.2544 193.083 95.8432 193.316C94.7495 194.002 93.5249 194.454 92.2472 194.642C90.9696 194.829 89.6668 194.749 88.4218 194.406C88.1413 194.31 87.8927 194.138 87.703 193.91C87.5133 193.682 87.3898 193.406 87.3459 193.112C87.302 192.819 87.3394 192.519 87.4541 192.245C87.5688 191.972 87.7563 191.735 87.9962 191.56C88.6788 190.928 89.5051 190.472 90.4035 190.23C90.5498 190.23 90.6429 190.164 90.6828 190.23C90.7227 190.297 90.8823 191.015 91.002 191.281C91.1217 191.547 91.2015 191.6 91.4143 191.547C91.6271 191.494 91.6537 191.454 91.5872 191.028C91.2547 188.847 90.2572 185.043 89.1932 177.609C89.1932 177.369 89.4592 177.316 90.6961 176.824C90.7759 177.343 92.5581 190.842 92.5847 190.962V191.015ZM40.3822 180.202C36.0597 180.056 36.2592 180.694 31.9633 180.588C30.5402 180.588 29.7821 181.625 29.6358 180.122C29.1703 175.52 29.0506 175.653 29.423 175.574C32.6948 174.882 28.8112 168.498 30.5003 168.631H30.6333C39.6507 167.727 41.9649 170.453 61.3164 165.545C63.5641 164.974 68.259 162.766 69.7752 162.553C69.589 162.952 59.9997 173.06 59.5741 172.98C55.8501 172.328 53.3497 174.616 53.2034 176.757C53.2034 177.329 53.2034 177.369 48.3223 178.806C46.93 179.293 45.4615 179.528 43.9865 179.497C42.8004 179.805 41.5968 180.04 40.3822 180.202ZM41.2201 180.934C41.2201 180.934 33.7588 183.461 30.9791 183.939C30.088 184.099 30.3274 184.245 29.955 181.798C29.955 181.532 29.7023 181.652 32.083 181.279C33.3997 181.532 40.1428 180.761 41.2201 180.973V180.934ZM26.3374 141.632C26.1911 140.781 41.4329 145.157 55.3846 142.204C56.3688 141.991 56.8476 141.712 61.4893 140.422C71.3446 137.762 71.717 136.964 71.9564 137.961C71.9564 138.174 74.2307 148.415 74.2307 148.442C74.2307 148.468 74.2307 148.801 73.9647 148.867C72.249 149.24 71.9431 149.998 68.6447 150.929C66.3848 151.505 64.0934 151.949 61.7819 152.259C58.6298 152.724 56.8875 153.682 46.2475 155.065C27.3615 153.908 28.2526 155.437 28.093 154.187C26.5236 143.122 28.4388 153.11 26.3374 141.632ZM87.7967 152.272C86.8393 152.387 85.8891 152.556 84.9505 152.777C83.2747 153.176 83.7136 152.565 81.2664 154.001C81.0802 154.107 81.027 154.44 80.8807 153.868C80.7344 153.296 80.5216 151.807 79.9763 149.2C79.9763 148.907 79.9763 148.867 80.0694 148.814C81.9713 150.051 84.8707 149.625 85.815 149.532C91.534 148.894 91.8133 146.008 91.933 147.577C91.933 148.255 92.3985 152.019 92.3852 152.179C92.3586 152.964 91.1217 151.314 87.7967 152.152V152.272ZM92.2655 154.294C90.8148 155.216 89.1965 155.843 87.5032 156.14C85.8099 156.437 84.0748 156.397 82.3969 156.023C81.9181 155.943 81.4659 155.743 81.4925 155.118C81.5191 154.493 82.6496 154.041 82.9688 153.895C84.0175 153.63 85.0845 153.443 86.1608 153.336C87.465 153 88.8041 152.816 90.1508 152.791C92.199 152.831 92.6645 153.908 92.2655 154.174V154.294ZM75.6671 151.434C75.6006 151.168 75.5075 151.195 78.633 149.945C79.2448 149.692 79.2049 149.798 79.6438 151.913C80.9738 158.563 81.1201 158.018 79.7236 158.018C78.7128 157.831 77.303 159.122 77.3296 158.244C77.3562 156.847 77.0769 157.02 75.6671 151.314V151.434ZM91.2946 145.369C91.2946 145.901 90.8823 146.513 89.9646 147.085C88.5016 147.976 87.012 148.628 83.1417 148.708C82.5842 148.744 82.0257 148.65 81.5109 148.433C80.996 148.216 80.5388 147.882 80.1758 147.457C80.021 147.129 79.9827 146.758 80.0674 146.405C80.152 146.052 80.3544 145.738 80.6413 145.516C83.421 142.962 91.401 142.683 91.2946 145.25V145.369ZM83.5806 142.962C79.3246 144.292 78.7261 145.715 78.6197 146.154C78.3803 147.205 78.9788 148.295 78.9256 148.681C78.8192 149.333 78.4468 149.133 76.1459 150.211C74.9356 150.782 76.3055 150.078 74.2972 143.414C73.8317 141.858 73.9248 141.26 73.3662 138.693C73.2332 138.028 73.2066 138.201 74.7893 137.722C76.3796 137.168 78.006 136.723 79.6571 136.392C80.1024 136.37 80.5463 136.326 80.9871 136.259C83.7668 136.259 82.2107 135.035 85.0569 142.47C85.2697 142.869 84.618 142.63 83.5806 142.962ZM28.6915 155.278H28.9841C30.7663 155.57 24.9941 154.905 43.8269 155.557C45.8808 155.777 47.9559 155.692 49.9848 155.304C76.4518 151.048 74.3903 147.989 74.3637 150.397C74.3371 152.804 75.6937 155.025 76.2257 158.736C76.2257 159.255 74.1376 159.521 72.7012 160.452C69.7752 162.38 70.1476 161.236 64.7212 163.71C57.5126 166.689 43.6274 168.006 42.856 167.913C39.1719 167.514 31.0456 167.993 30.0215 167.913C28.3058 158.669 29.1038 158.044 28.3989 155.77C28.2526 155.531 28.226 155.265 28.6915 155.265V155.278ZM55.5575 176.212C56.8875 174.576 59.9332 174.603 60.3189 176.877C60.2125 178.965 57.7919 179.537 56.1959 178.885C55.9509 178.78 55.734 178.618 55.5623 178.414C55.3907 178.21 55.269 177.968 55.207 177.709C55.1451 177.449 55.1445 177.179 55.2053 176.919C55.2661 176.659 55.3867 176.417 55.5575 176.212ZM59.2416 181.346C59.9997 181.027 60.4785 180.787 60.4918 180.814C61.0371 181.904 61.343 181.718 59.082 182.596C58.8958 182.503 58.9357 182.53 58.8825 182.397C58.4037 181.412 58.3771 181.718 59.2416 181.346ZM62.1277 183.633L61.9681 183.766C59.7071 184.95 60.2923 184.95 59.5874 183.633C61.9947 182.556 61.3297 182.397 62.1277 183.633ZM62.7661 184.538C64.3089 185.868 63.737 185.695 62.0612 186.759C61.6489 187.012 61.5957 186.759 60.944 185.841C60.7312 185.522 60.811 185.522 62.7661 184.538ZM60.6913 187.889C61.8617 188.488 63.2582 187.371 64.2956 186.559C64.801 186.16 65.2133 185.642 64.8675 185.083C64.5217 184.525 64.5749 184.697 66.6231 183.753C67.9531 183.088 68.0861 183.607 69.0969 183.461C74.3105 182.702 69.4161 183.647 76.5582 181.732C80.9472 180.561 79.431 177.249 80.9472 187.717C81.2531 189.858 81.3462 189.884 80.9472 189.964C70.3072 191.946 77.9015 189.419 64.8409 192.465C64.2557 192.611 54.9324 195.617 51.4478 195.989C48.6149 196.308 48.2292 196.854 47.6839 196.721C47.644 196.614 60.2657 187.677 60.6913 187.889ZM78.2606 164.947C78.1969 164.829 78.159 164.699 78.1496 164.565C78.1402 164.431 78.1594 164.297 78.2059 164.171C78.2525 164.045 78.3253 163.93 78.4196 163.835C78.5139 163.739 78.6275 163.665 78.7527 163.617C82.6629 161.861 81.7186 162.553 82.3703 164.681C82.6097 165.479 78.4069 165.253 78.2606 164.947ZM92.8906 164.335C86.9455 164.521 83.8599 165.439 83.5806 164.694C83.0087 163.018 82.7959 162.553 83.3678 162.593C84.6978 162.686 84.6978 162.26 87.278 162.3C89.8582 162.34 93.1832 161.808 92.1857 159.348C91.9463 158.762 91.0153 158.603 89.938 158.51C88.1026 158.35 87.0652 157.738 85.5623 157.951C84.9239 158.044 81.7319 158.284 81.7452 157.645C81.7452 157.406 81.7452 157.539 81.5989 156.608C88.1558 158.377 92.7709 154.4 92.8108 155.278C93.0901 162.912 93.6886 164.322 92.8374 164.335H92.8906ZM42.0447 96.4121C41.0073 93.6723 42.4969 89.0439 40.8876 85.3997C40.3024 84.0697 41.1137 84.4421 43.9067 84.0697C46.0214 83.8303 45.7022 88.0597 45.6756 88.0597C45.6756 92.7679 47.0056 91.5842 46.5534 94.0048C46.0561 95.9492 46.2586 98.0066 47.1253 99.8169C47.8967 101.546 47.2184 102.397 47.9366 104.858C48.6548 107.318 50.1843 106.081 50.6897 107.518C51.0355 108.515 51.8069 108.515 52.8576 108.648C54.4802 108.848 53.629 110.364 54.9856 110.297C55.7836 110.297 56.8742 109.805 57.6456 110.856C58.8559 112.705 59.2815 109.526 62.008 111.893C62.4469 112.292 62.9124 112.119 63.7769 111.414C64.4153 110.896 65.1069 111.202 65.7586 111.494C66.4103 111.787 66.7295 111.148 67.0886 110.603C68.6713 108.316 70.6131 112.093 69.5757 113.702C69.2964 114.128 68.4452 113.449 68.3255 114.593C68.0861 117.12 65.5591 114.686 65.0005 115.923C64.2823 117.426 62.5533 116.907 61.5292 116.841C60.5051 116.774 60.5583 115.99 59.5608 116.588C59.0424 116.82 58.4672 116.894 57.9069 116.802C57.3465 116.71 56.8256 116.455 56.4087 116.069C55.8767 115.418 55.0787 115.591 54.1876 115.617C52.0596 115.697 52.6049 113.755 50.8892 113.755C50.4581 113.799 50.0244 113.705 49.6495 113.488C49.2747 113.27 48.9778 112.941 48.8011 112.545C48.4154 111.72 47.9233 112.053 46.8194 111.641C44.9042 110.909 45.9948 109.779 44.6116 108.635C42.6831 107.039 43.7737 105.31 43.0954 103.82C41.2068 99.8169 43.7338 100.854 42.0447 96.4121ZM66.8492 88.4321C67.2482 87.5809 67.2349 86.4105 67.5807 85.945C68.4186 84.881 70.4668 84.3091 70.8126 85.945C71.7303 90.2941 74.0711 89.6424 75.4144 91.8502C77.2631 94.8826 73.2066 98.5002 70.4136 97.1702C69.722 96.8377 69.19 97.0505 69.3496 97.7288C69.9215 100.07 72.9805 94.5368 68.3787 108.568C68.259 108.967 67.0487 108.648 66.3837 109.659C65.6256 110.989 64.7212 109.499 63.3114 110.404C62.54 110.896 62.407 110.896 62.1543 110.71C61.7559 110.392 61.2962 110.161 60.804 110.031C60.3118 109.9 59.798 109.873 59.2948 109.951C58.2308 110.603 58.2973 109.207 56.8476 109.14C55.3979 109.074 55.2782 109.313 54.9989 108.848C53.6689 106.733 52.1261 108.143 51.767 107.039C51.0488 104.778 49.107 106.427 48.8942 103.754C48.3356 97.0239 47.2583 99.0987 47.5642 95.654C47.9444 94.243 47.8652 92.7476 47.3381 91.3847C46.6066 89.802 47.0056 89.0439 46.7396 85.6391C46.7396 84.881 45.9815 84.3091 46.5135 84.3091C49.1735 84.3091 54.0147 84.1894 54.2541 84.8145C54.6797 85.9716 54.959 87.0755 56.2624 87.4745C56.8875 87.674 56.6747 89.2168 58.2973 90.6266C58.956 91.188 59.7399 91.583 60.5832 91.7781C61.4264 91.9731 62.3042 91.9627 63.1425 91.7476C63.9808 91.5324 64.7552 91.119 65.4003 90.5419C66.0453 89.9649 66.5423 89.2413 66.8492 88.4321ZM59.8002 88.9641C60.2391 81.9683 62.0346 88.0597 62.7129 81.6757C62.7129 81.1969 62.7927 81.1703 63.2316 81.3299C64.4153 81.7688 64.5616 81.9151 64.3355 83.3249C64.3176 83.8918 64.1791 84.4484 63.9291 84.9575C63.6791 85.4667 63.3234 85.9166 62.8858 86.2775C61.5558 87.2218 61.7154 86.7962 61.3962 90.4537C61.3962 90.866 60.0662 90.1744 59.9332 90.1079C59.8002 90.0414 59.8667 89.9217 59.8002 88.9774V88.9641ZM72.9805 87.3415C73.1268 86.6898 73.1002 86.0115 73.2066 85.3332C73.6987 82.5801 74.9755 84.216 75.4277 80.758C75.5208 80.0797 75.308 79.7206 76.0129 79.8935C77.0503 80.1595 77.3429 80.7181 77.3429 81.5161C77.3429 82.3141 76.9838 83.8569 76.106 84.1761C74.6297 84.7081 74.5499 86.1578 74.1642 88.5252C74.0844 89.0572 73.7918 88.6316 73.4992 88.4454C73.299 88.3528 73.1375 88.193 73.0427 87.9938C72.948 87.7946 72.926 87.5685 72.9805 87.3548V87.3415ZM62.9789 118.37C65.0936 118.57 65.5325 116.894 66.2773 117.16C66.7561 117.333 67.2615 117 68.0462 117.519L74.6297 120.964C74.3903 121.044 62.1543 123.97 61.9282 124.023C61.4228 124.129 61.7287 123.571 61.5159 121.004C61.2233 117.865 60.2391 118.104 62.9789 118.37ZM49.6789 24.2729C49.6789 24.1532 52.0729 16.7983 52.8709 17.7027C53.5944 18.9984 54.2514 20.3301 54.8393 21.6927C57.8451 29.0343 58.284 27.8639 56.2624 28.4358C54.1375 28.1997 52.1181 27.3855 50.4237 26.0817C49.7454 25.6694 49.3597 25.031 49.7055 24.2729H49.6789ZM47.2317 31.4682C47.993 29.754 48.594 27.9731 49.0272 26.1482C49.1868 25.6428 49.2134 26.5738 52.2591 28.1166C60.1726 32.1066 55.4777 22.9562 61.5691 37.5197C62.0346 38.6369 62.1277 38.8497 61.8484 39.0226C61.0994 39.5618 60.2249 39.9006 59.3081 40.0068C55.6506 39.927 47.7105 37.2404 46.4337 33.7691C46.3672 33.3568 47.1386 31.7076 47.2583 31.4682H47.2317ZM43.4279 41.6826C43.8934 40.5255 45.7554 33.9021 46.0879 34.5139C48.4952 38.3443 54.8127 40.3925 58.6431 40.6851C64.3621 41.124 59.9731 34.6203 66.1709 49.8887C66.3039 50.2079 66.1709 50.1547 64.8409 50.7931C58.816 53.6792 41.9383 45.5396 43.4545 41.6826H43.4279ZM42.7097 43.7441C43.1353 42.7466 43.7471 46.7233 52.5384 50.2079C55.2589 51.357 58.1657 52.0015 61.1169 52.1098C62.2582 52.0529 63.3951 51.9286 64.5217 51.7374C66.3039 50.9261 66.4901 50.6734 66.6364 51.1256C69.0703 58.7465 69.9614 56.9776 66.7162 58.8662C61.6489 61.8055 47.8302 60.9676 39.8369 52.2162C39.3448 51.6177 42.4304 44.4357 42.7097 43.7441ZM39.1985 53.8521C39.8236 51.5113 38.7596 54.3043 47.8302 58.813C50.4902 60.143 60.9174 63.2818 68.6181 58.6135C69.4959 58.0815 69.2299 58.0682 70.3737 61.074C70.9988 62.6833 70.6264 62.2444 68.6048 63.5345C65.6788 65.3832 60.1061 66.5536 53.4428 66.7398C49.0013 66.9175 44.5725 66.1514 40.4487 64.4921C39.674 64.1863 38.9882 63.6914 38.4538 63.0526C37.9195 62.4137 37.5537 61.6512 37.3897 60.8346C37.1503 59.5046 37.7355 59.2386 39.1985 53.8521ZM32.0697 76.2493C31.6664 73.8106 31.8611 71.3105 32.6372 68.9638C33.4132 66.617 34.7475 64.4937 36.5252 62.7764C36.8976 62.3907 36.8843 63.1222 38.6665 64.5054C43.9865 68.6018 62.7395 69.0008 69.8816 64.0532C71.1052 63.2153 73.2332 69.2402 73.8716 71.2884C74.0578 71.9534 72.7411 71.0889 71.5973 73.4696C71.4643 73.7223 71.5973 74.1213 71.5973 74.4405C71.5973 74.7597 72.4884 74.64 72.6613 74.2144C72.8342 73.7888 73.3928 73.4696 73.8184 73.177C74.0312 73.0307 74.111 73.0972 74.1243 73.3765C74.2041 74.7065 74.5366 78.6965 73.9381 78.9625C71.0919 80.226 71.1717 84.1096 70.5998 83.8835C70.0863 83.7201 69.5427 83.6735 69.0089 83.7472C68.475 83.8208 67.9644 84.0128 67.5142 84.3091C67.1285 84.5219 67.2615 83.7106 66.7827 82.8727C66.4414 82.1257 65.9272 81.4708 65.2827 80.9619C64.6381 80.4531 63.8816 80.105 63.0759 79.9465C62.2701 79.7879 61.4382 79.8235 60.6489 80.0501C59.8596 80.2768 59.1356 80.6881 58.5367 81.2501C55.0388 84.3623 57.6988 88.9109 55.2782 84.0564C54.4137 82.3274 50.1976 83.2983 45.4894 82.886C43.3082 82.6998 40.9807 83.2185 39.7172 83.1653C39.4512 83.1653 39.7172 83.1653 38.1212 82.3407C36.0863 81.29 34.4238 82.7264 34.1312 82.0614C32.2559 77.7123 32.482 78.6034 32.0697 76.2493ZM33.3997 111.042C34.2509 109.579 34.7297 108.382 35.9932 101.08C36.6981 97.0904 35.8602 97.0904 36.8444 97.3697C37.2301 97.4761 38.4537 97.9948 39.1187 97.1968C39.7837 96.3988 38.5734 96.2658 37.7887 96.1594C36.4587 95.9732 34.4903 94.2575 33.3997 91.4778C33.1124 90.65 33.0169 89.7677 33.1204 88.8976C33.1204 86.9292 32.748 85.1337 34.8228 83.5776C35.351 83.312 35.934 83.1738 36.5252 83.1738C37.1164 83.1738 37.6994 83.312 38.2276 83.5776C41.9915 85.5593 39.8635 93.7255 40.8876 96.0929C42.3772 99.6307 40.8876 100.921 41.4728 102.889C41.8376 103.63 42.0973 104.418 42.2442 105.23C42.1323 106.042 42.2098 106.87 42.4705 107.647C42.7312 108.425 43.1681 109.131 43.7471 109.712C44.5983 110.404 44.0929 112.651 46.8593 113.077C48.2558 113.303 47.6972 114.407 49.3065 114.846C50.9158 115.285 50.969 115.099 51.2483 115.524C52.7645 117.905 54.9058 116.322 55.7836 117.386C56.3504 117.801 57.0078 118.076 57.7016 118.187C58.3953 118.298 59.1056 118.242 59.7736 118.025C60.4652 117.719 60.0662 117.399 60.5982 125.433C60.8862 128.494 60.6341 131.582 59.8534 134.556C58.6032 138.4 53.0571 139.092 53.0172 138.719C43.2417 138.227 40.0763 134.729 34.2243 126.231C28.3723 117.732 27.3349 116.921 27.3349 116.921C26.5369 115.697 31.5244 114.247 33.3997 111.042ZM18.4904 121.097C21.2302 118.437 20.7381 120.139 25.3 115.644C25.4064 115.537 25.4596 115.458 25.5261 115.644C25.9916 117.572 26.364 117.266 29.2767 121.203C32.5884 125.685 31.9367 125.193 31.6574 125.193C28.0943 124.255 24.4443 123.684 20.7647 123.491C11.3483 124.023 14.0748 125.433 18.4904 121.097ZM4.80472 133.16C6.36082 129.782 9.24692 128.744 13.0906 125.326C14.0748 124.435 21.0706 124.129 23.2518 124.568C24.369 124.781 25.5261 124.754 26.6699 124.861C27.561 124.941 31.4446 125.898 32.3091 126.111C33.4529 126.39 38.7862 137.576 47.777 139.411C50.2936 139.929 52.8805 140.01 55.4245 139.65C60.7445 138.227 61.1568 134.902 61.6223 130.646C62.2474 124.941 61.1435 124.369 62.0612 124.369C64.7212 124.369 66.53 123.225 75.0819 121.616C76.0661 121.429 78.2074 124.276 78.8325 125.606C80.1355 127.439 81.0829 129.501 81.6255 131.684C81.6255 133.665 83.1949 135.434 82.224 135.554C80.559 135.534 78.9004 135.762 77.303 136.232C76.2857 136.633 75.2355 136.945 74.1642 137.163C73.8842 137.231 73.6186 137.348 73.3795 137.509C72.6613 137.895 73.0869 134.144 72.249 133.625C70.7328 132.681 72.249 136.285 71.5308 136.645C70.5333 137.03 72.1559 136.392 65.5724 138.533C64.0828 139.025 62.673 139.451 61.343 139.863C47.3248 143.853 41.2999 142.297 33.9317 141.645C23.704 140.728 27.5078 141.898 23.5976 134.57C23.1321 133.705 22.2676 134.144 22.6533 135.022C23.5577 137.017 26.2044 142.31 24.6882 141.818C19.9933 140.289 16.5486 142.058 9.63262 142.536C7.06572 142.723 3.47472 144.731 2.07822 145.383C1.77232 143.587 2.80972 137.389 4.80472 133.16ZM1.47972 157.432C1.47972 157.432 2.19792 150.782 2.22452 150.782C2.02502 148.708 1.54622 145.582 2.87622 145.462C4.20622 145.343 5.53622 143.348 13.8221 142.802C15.4713 142.696 19.7938 141.18 24.8611 142.59C25.3266 142.709 25.4064 142.763 25.4862 143.201C25.9278 145.007 26.1907 146.851 26.2709 148.708C26.63 152.777 26.7763 152.844 26.364 152.791C24.2665 152.61 22.1573 152.61 20.0598 152.791C16.9077 152.857 15.8703 154.121 12.2128 154.573C10.4327 154.926 8.68123 155.411 6.97262 156.023C1.66592 157.446 1.28022 159.507 1.47972 157.432ZM2.34422 167.328C2.26442 166.995 1.01422 159.348 1.74572 158.922C8.86122 155.251 14.1546 155.238 15.4713 154.573C18.2377 153.243 23.2784 153.243 26.3906 153.442C27.5344 153.536 27.4147 161.329 28.1196 163.697C28.171 163.996 28.2021 164.298 28.2127 164.601C27.5775 164.445 26.9181 164.414 26.2709 164.508C24.9482 164.685 23.6097 164.712 22.2809 164.588C18.4904 164.814 20.1529 165.333 16.2959 165.426C15.0981 165.53 13.9106 165.73 12.7448 166.024C8.30262 167.727 8.34252 167.354 5.21702 168.432C1.24032 169.748 3.27522 170.998 2.35752 167.328H2.34422ZM3.79392 178.3C2.63682 178.752 3.79392 179.138 2.82302 173.539L2.67672 170.879C2.67672 169.23 9.45972 168.299 12.266 167.022C13.9418 166.25 16.5752 166.277 18.3441 166.051C20.113 165.825 20.0864 165.306 22.9592 165.452C24.2094 165.373 28.2792 164.934 28.3989 165.665C29.5028 173.791 29.5826 172.488 29.5294 173.153C28.9627 172.707 28.2947 172.409 27.5846 172.283C26.8746 172.158 26.1447 172.21 25.4596 172.435C11.867 175.108 7.38492 176.93 3.80722 178.3H3.79392ZM9.96512 201.176C7.90362 193.622 8.19622 198.516 5.97512 185.429C5.97512 185.429 4.92442 179.218 5.60272 179.072C7.21202 178.712 10.5902 177.077 12.8379 176.598C22.6001 174.523 20.0066 174.39 26.4837 173.459C28.3989 173.193 27.295 173.273 28.6782 181.678C29.1437 184.538 29.2767 184.338 29.0107 184.498C19.8071 187.464 20.1928 187.318 19.9933 187.544C19.7938 187.77 19.6342 188.368 20.246 188.488C20.8578 188.608 53.3497 178.606 53.3497 178.779C54.1743 180.468 54.4004 181.239 56.7013 181.705C57.7653 181.918 56.8077 181.798 59.1352 185.376C60.3056 187.171 61.3297 185.828 54.0679 190.51C50.0779 193.023 43.9067 198.357 29.1437 206.27C26.8428 207.494 21.8021 207.6 21.0307 207.746C19.4793 208.015 17.9432 208.366 16.4289 208.797C11.5212 208.677 11.2552 205.831 9.97842 201.176H9.96512ZM19.7805 229.492C17.9983 229.332 17.6924 230.822 17.32 227.444C17.32 227.098 17.1338 225.063 17.4131 225.302C18.3441 226.1 21.4031 225.169 21.4031 225.648C21.4962 230.157 22.7597 229.731 19.7938 229.492H19.7805ZM31.4712 228.082C25.1803 229.931 26.5502 229.864 23.2119 229.665C23.1259 229.668 23.0418 229.639 22.9773 229.582C22.9128 229.525 22.8729 229.445 22.8661 229.359C22.626 228.492 22.492 227.598 22.4671 226.699C22.374 225.502 22.2809 225.369 22.8927 225.369C29.9949 225.196 31.3249 224.039 31.3515 224.97C31.4446 227.71 32.0697 227.896 31.4712 228.082ZM42.1112 227.39C37.7754 228.561 38.6798 228.282 37.5227 228.415C36.3656 228.548 33.0007 228.508 32.8278 227.63C31.8569 222.443 31.8968 225.728 37.1902 224.145C38.5202 223.733 38.6798 224.145 41.9782 223.361C42.6565 223.214 42.4437 222.962 42.7629 226.3C42.8161 227.005 42.8959 227.151 42.0979 227.377L42.1112 227.39ZM53.8551 226.34C50.1311 227.67 50.3439 226.433 46.2741 226.898C45.6147 226.918 44.955 226.869 44.3057 226.752C44.0663 226.752 44.0264 226.592 43.9865 226.406C43.8269 225.289 43.1486 222.416 44.3855 222.416C45.1544 222.32 45.9352 222.392 46.6731 222.629C48.0031 223.214 49.0272 222.842 50.437 222.922C53.097 223.095 53.5625 221.831 53.6556 222.922C54.0014 226.3 54.1344 226.22 53.8418 226.326L53.8551 226.34ZM63.0321 225.249C59.1352 226.579 59.9199 226.353 56.3821 225.874C54.7728 225.661 55.4245 227.284 54.6797 222.509C54.6797 222.27 54.6797 222.15 54.9324 222.084C56.7279 221.618 55.2915 221.632 59.5741 221.858C62.2341 222.004 63.0454 221.086 63.0321 221.858C63.0454 224.571 63.7902 224.983 63.0188 225.236L63.0321 225.249ZM67.9797 224.358C64.2158 224.677 64.5217 224.744 64.4286 224.052C64.0296 221.179 64.0562 221.206 64.3488 221.113C65.6403 220.556 67.0159 220.219 68.4186 220.115C70.5333 220.514 73.9514 218.652 73.8583 219.796C73.5125 223.64 77.4493 223.533 67.9797 224.358ZM79.9497 221.499C78.9522 221.871 78.5 222.456 77.4227 222.363C74.6563 222.363 75.7602 224.784 74.7627 219.703C74.6696 219.251 74.7627 219.131 75.973 218.453C79.0719 216.711 79.4044 217.695 81.1334 216.405C81.4659 216.152 81.7851 215.873 81.7718 216.298C81.6521 219.331 84.3653 219.876 79.9497 221.499ZM85.2697 205.233C85.7742 205.798 86.2198 206.413 86.5997 207.068C87.9297 212.588 83.2614 213.425 80.628 215.128C79.298 215.952 79.3778 216.072 79.0719 216.085C77.6152 216.374 76.2256 216.933 74.9755 217.735C73.7519 218.506 73.8716 217.814 70.52 218.799C69.4693 219.118 70.0146 218.799 73.6987 215.367C75.1617 214.037 74.2706 212.002 75.6671 210.366C76.4784 209.422 74.3371 207.706 73.5657 212.8C73.3795 214.13 72.7278 214.622 70.5067 216.684C67.8467 219.065 67.1019 219.025 63.8567 219.982C62.0052 220.667 60.0116 220.878 58.0579 220.594C57.22 220.594 58.5766 220.408 59.2416 216.923C59.7603 214.197 60.3322 214.529 60.4918 213.558C60.519 213.451 60.5078 213.337 60.4601 213.236C60.4125 213.136 60.3314 213.055 60.2307 213.008C60.1301 212.961 60.0161 212.95 59.9085 212.978C59.8008 213.005 59.7061 213.07 59.6406 213.159C57.3663 216.272 59.0687 217.07 56.2358 220.368C55.7437 220.94 48.575 222.336 47.1785 221.419C45.782 220.501 44.8776 220.341 44.5983 218.612C44.2126 216.179 44.4653 215.78 43.787 215.593C42.1777 215.154 44.0796 220.634 43.787 220.607C40.7812 220.288 38.999 215.873 38.2941 216.617C38.1394 216.774 38.0462 216.981 38.0315 217.201C38.0169 217.421 38.0818 217.639 38.2143 217.814C41.1935 221.725 41.8718 220.887 42.9624 221.725C41.7388 222.35 32.5485 224.385 28.9309 222.43C28.094 222.145 27.3295 221.681 26.6908 221.07C26.0521 220.459 25.5548 219.715 25.2335 218.892C25.1408 218.576 25.0113 218.273 24.8478 217.987C24.3158 217.322 23.704 217.761 23.8503 218.44C25.1803 224.464 32.7613 223.467 24.8877 224.065C18.1712 223.972 19.5677 225.768 14.6467 221.937C12.9975 220.607 12.6118 218.027 13.0374 215.713C13.4532 214.674 13.7824 213.601 14.0216 212.508C14.261 211.617 14.3541 212.095 16.6816 212.228C17.5727 212.228 18.0116 211.896 18.9692 212.069C19.9268 212.242 22.0548 211.231 25.6192 211.962C26.098 212.056 30.9392 211.962 31.019 211.962C39.3847 211.79 46.6199 208.744 53.629 207.44L53.3497 206.802C46.0347 208.411 40.2492 209.755 40.2492 209.755C28.1063 212.667 26.63 210.366 20.0598 211.284C19.3416 211.377 18.1845 211.284 17.8786 211.284C16.7993 211.506 15.6862 211.506 14.6068 211.284C14.2211 211.284 14.3408 211.204 14.6068 209.954C18.0515 210.579 16.8944 209.648 23.305 208.85C29.955 208.026 27.8137 208.398 36.0065 203.982C41.0339 201.322 39.398 201.588 43.9865 199.022C47.1918 197.226 44.9441 197.891 51.7271 196.628C59.6007 195.165 62.8326 193.648 69.6156 192.305C74.5632 191.347 72.2756 192.066 80.4019 190.789C81.4526 190.616 81.426 190.549 81.7319 191.441C82.9821 195.75 83.6205 197.106 83.5274 199.421C83.4343 201.735 84.1525 200.591 79.83 201.389C74.3105 202.4 62.6464 204.834 53.4295 206.895L53.5625 207.534C56.5284 206.988 58.6963 206.829 59.5874 206.629C60.4785 206.43 82.1974 200.95 83.5274 201.815C83.8963 203.05 84.4866 204.208 85.2697 205.233ZM105.832 195.537C101.11 198.769 94.6329 197.785 90.8956 199.527C88.8607 200.485 87.3445 201.322 85.5091 200.258C83.8865 199.327 85.3362 199.341 84.2589 195.67C82.3437 189.1 83.1816 194.114 81.2398 181.133C80.9472 179.165 80.1226 179.737 84.1392 178.633C84.9763 178.088 85.9607 177.814 86.9588 177.848C87.943 177.768 88.1558 177.356 88.3952 178.313C88.5415 178.912 90.4035 188.701 90.4301 188.847C90.5365 189.313 90.4301 189.366 90.1907 189.472C87.4243 190.39 86.4135 191.667 86.5199 193.276C86.5199 194.393 87.5041 195.364 89.7518 195.51C97.9712 196.056 100.844 189.831 95.0718 188.967C93.2231 188.701 93.1034 189.259 92.8906 187.637C92.6778 186.014 92.2921 181.386 91.6936 176.558C91.6138 175.853 92.7576 175.786 92.3852 174.337C92.1857 173.539 93.529 173.911 94.9388 172.887C95.2244 172.675 95.4394 172.382 95.5557 172.046C95.672 171.709 95.6843 171.346 95.591 171.003C95.4977 170.66 95.303 170.352 95.0324 170.122C94.7619 169.891 94.428 169.747 94.0743 169.708C93.8482 169.708 93.9546 169.615 93.9679 169.482C94.1275 168.152 95.1782 168.378 96.5481 167.594C97.4791 167.075 97.3993 165.931 96.9072 165.04C96.4151 164.149 95.7368 164.229 94.726 164.215C94.3137 164.215 94.2738 164.136 94.2871 163.511C94.2871 161.529 93.4359 151.541 93.0901 148.216C93.9732 148.696 94.9724 148.922 95.9762 148.867C97.0535 148.867 99.115 148.096 99.2879 146.912C99.2879 146.526 98.7825 146.447 98.3569 146.393C97.7466 146.264 97.1751 145.993 96.6885 145.602C96.2019 145.212 95.8136 144.713 95.5549 144.145C95.2963 143.577 95.1743 142.956 95.199 142.333C95.2237 141.709 95.3942 141.1 95.6969 140.555C96.2954 139.225 100.525 136.95 99.9529 134.078C99.6337 132.508 99.9529 131.936 98.8623 131.032C97.3594 129.702 95.6836 128.851 96.5215 127.188C97.1067 126.044 97.12 126.191 97.2264 126.43C97.7053 127.873 98.6201 129.131 99.8446 130.032C101.069 130.932 102.543 131.43 104.063 131.458C104.688 134.596 105.499 135.168 106.39 138.786C107.136 141.226 107.635 143.734 107.88 146.274C108.228 148.579 108.335 150.915 108.199 153.243C107.295 164.269 107.973 153.815 107.162 164.774C106.563 172.674 107.481 174.004 107.6 179.072C107.88 190.909 113.785 190.017 105.765 195.537H105.832ZM111.75 176.531C114.264 175.294 112.92 175.361 113.386 177.542C113.405 177.63 113.443 177.712 113.499 177.782C113.555 177.853 113.626 177.909 113.707 177.948C113.788 177.987 113.876 178.006 113.966 178.005C114.056 178.004 114.144 177.982 114.224 177.941C114.57 177.728 114.37 176.85 114.45 175.707C114.501 174.812 114.621 173.923 114.809 173.047C115.86 171.717 114.477 170.746 115.9 168.352C117.323 165.958 115.368 165.412 116.511 163.604C117.005 163.012 117.347 162.309 117.509 161.555C117.728 160.921 118.184 160.398 118.783 160.095C119.381 159.792 120.074 159.734 120.714 159.933C124.026 160.691 125.449 159.8 127.657 161.449C129.865 163.098 130.782 162.992 132.791 165.013C133.323 165.532 132.538 166.596 132.378 166.649C132.219 166.703 127.657 163.417 124.106 162.806C120.555 162.194 120.275 162.181 119.996 162.486C119.185 163.391 122.895 163.577 124.252 163.816C126.061 164.189 134.24 168.471 134.174 169.136C134.107 169.801 132.565 170.466 130.503 169.828C127.63 168.897 124.265 166.57 122.363 166.742C121.472 166.822 118.892 165.745 118.812 166.742C118.812 167.261 119.69 167.261 119.73 167.274C124.624 168.445 121.472 166.543 129.825 170.945C130.304 171.198 131.155 171.597 130.53 172.275C128.747 174.137 124.664 171.198 122.749 171.198C120.249 171.198 120.156 170.56 119.903 171.198C119.437 172.528 122.151 172.049 123.56 172.408C124.606 172.728 125.632 173.11 126.633 173.552C127.697 174.004 126.726 175.507 125.688 175.481C124.452 175.481 123.933 175.387 122.457 175.401C121.615 175.526 120.767 175.606 119.916 175.64C119.504 175.64 119.424 176.345 119.996 176.558C120.195 176.634 120.4 176.696 120.608 176.744C120.544 176.994 120.459 177.239 120.355 177.476C119.225 179.51 118.307 179.191 118.706 179.909C119.291 180.973 121.22 178.832 121.579 177.249C121.591 177.152 121.633 177.061 121.7 176.99C121.767 176.918 121.855 176.869 121.951 176.85C122.536 176.704 122.457 176.185 123.773 176.611C121.765 179.271 121.818 178.845 121.685 179.856C121.685 180.322 120.714 182.25 119.823 182.516C118.121 183.088 117.309 183.514 116.112 183.035C115.74 182.875 114.782 183.035 114.782 183.447C114.782 183.86 114.782 183.833 115.674 184.152C116.565 184.471 116.538 184.059 111.271 188.767C110.806 189.193 111.072 189.219 110.034 186.107C109.156 184.117 108.751 181.95 108.851 179.776C108.784 177.289 108.239 178.22 111.684 176.531H111.75ZM122.856 137.31C127.138 138.733 132.259 138.054 137.047 137.522C138.975 137.31 139.201 136.006 139.348 136.764C139.428 137.204 139.477 137.648 139.494 138.094C139.76 145.915 139.76 141.832 135.703 141.566C132.529 141.348 129.346 141.308 126.167 141.446C125.484 141.419 124.803 141.54 124.172 141.802C123.54 142.064 122.973 142.46 122.51 142.962C121.964 143.733 121.831 137.975 121.818 137.429C121.805 136.884 121.818 136.99 122.789 137.31H122.856ZM122.51 134.982C125.077 133.213 130.49 133.147 133.575 133.413C134.792 133.438 136.004 133.581 137.193 133.838C138.523 134.237 139.387 134.982 138.523 135.581C137.379 136.418 137.353 136.472 134.613 136.911C131.873 137.349 125.861 137.443 122.802 136.418C121.792 136.006 121.978 135.368 122.51 134.982ZM123.507 144.651C122.523 144.319 123.401 143.175 124.119 143.015C124.815 142.774 125.532 142.596 126.26 142.483C150.227 142.084 133.469 148.016 123.521 144.651H123.507ZM122.789 145.436C127.205 147.404 132.525 146.939 137.22 145.848C139.348 145.356 139.188 144.305 139.188 145.768C137.166 161.928 136.794 160.478 136.621 166.33C136.422 173.658 138.51 176.864 137.193 177.702C135.789 178.561 134.154 178.965 132.511 178.859C130.862 178.859 127.67 178.526 126.859 177.781C126.703 177.58 126.602 177.342 126.566 177.09C126.447 176.598 127.005 176.624 127.71 175.587C128.415 174.55 127.71 174.151 128.654 174.151C129.203 174.218 129.76 174.142 130.271 173.93C130.781 173.718 131.228 173.377 131.567 172.94C132.272 172.156 131.354 171.331 132.139 171.371C134.32 171.477 136.049 169.708 134.892 168.312C134.014 167.235 132.95 167.501 133.429 166.982C135.078 165.133 132.99 163.617 130.862 162.433C129.368 161.405 127.783 160.515 126.127 159.773C125.861 159.667 125.702 159.547 125.662 159.294C125.662 159.175 121.938 145.05 122.802 145.436H122.789ZM110.646 200.152C110.42 200.857 109.675 199.633 109.768 199.115C110.013 197.852 109.835 196.543 109.263 195.391C108.651 194.247 110.779 194.061 110.925 191.401V191.268C111.191 190.962 110.726 190.416 111.338 190.164C111.693 189.949 112.015 189.685 112.295 189.379C113.24 188.608 112.947 189.1 113.014 189.273C113.074 189.439 113.11 189.614 113.12 189.791C113.2 190.855 114.157 190.736 114.024 191.254C112.428 197.931 113.2 192.385 110.646 200.152ZM149.376 191.933C148.754 194.211 148.275 196.525 147.939 198.862C147.445 200.978 146.746 203.04 145.851 205.02C141.781 217.735 148.059 208.85 130.969 211.524C125.649 212.361 126.061 212.96 119.943 211.657C118.121 211.271 114.344 211.723 113.718 210.513C111.058 205.565 112.708 206.177 112.681 203.224C112.681 201.495 111.258 201.615 111.577 200.684C111.997 198.971 112.708 197.342 113.679 195.869C114.423 194.726 116.059 190.815 114.49 189.898C113.918 189.565 114.25 189.033 113.945 188.488C113.639 187.943 117.509 184.764 117.935 184.498C118.765 184.293 119.562 183.971 120.302 183.54C120.943 183.194 121.495 182.704 121.915 182.109C122.335 181.513 122.611 180.829 122.723 180.109C122.922 179.524 122.869 179.803 124.385 177.768C124.651 177.409 124.385 176.811 124.944 176.904C125.782 177.063 124.944 177.981 126.034 178.726C128.388 180.335 138.603 181.386 138.776 176.917C138.869 174.576 137.273 171.597 137.964 163.444C138.563 156.462 142.766 136.764 139.042 133.586C137.299 132.109 130.383 132.189 127.923 132.256C126.686 132.431 125.46 132.679 124.252 133C123.015 133.213 121.113 134.184 120.994 135.66C120.142 145.13 124.013 156.794 124.425 159.281C123.218 159.398 121.999 159.286 120.834 158.949C120.41 158.819 119.965 158.774 119.524 158.819C119.084 158.863 118.656 158.995 118.267 159.207C117.878 159.419 117.535 159.706 117.259 160.053C116.983 160.399 116.778 160.797 116.658 161.223C116.472 162.46 115.048 162.819 115.009 164.934C115.009 166.264 115.634 166.264 114.929 167.594C114.348 168.351 114.09 169.307 114.211 170.254C114.463 172.275 113.173 172.914 113.28 174.244C113.28 174.589 113.28 174.456 110.034 175.933C108.598 176.598 108.625 176.811 108.611 176.451C108.611 175.015 107.281 170.666 108.811 158.443C109.42 154.529 109.469 150.548 108.957 146.62C108.172 138.799 107.627 143.401 112.269 141.512C113.16 141.14 113.226 140.182 112.455 139.93C112.135 139.775 111.853 139.553 111.626 139.28C111.399 139.006 111.233 138.687 111.14 138.345C111.047 138.002 111.028 137.643 111.085 137.293C111.142 136.942 111.274 136.608 111.471 136.312C113.466 132.947 114.836 130.061 112.349 125.765C111.271 123.916 110.034 122.613 110.633 122.866C112.295 123.571 114.729 123.185 115.328 121.376C115.434 121.03 115.501 120.578 114.516 120.618C113.957 120.638 113.398 120.557 112.867 120.379C115.62 119.488 116.525 116.681 115.088 116.615C114.237 116.615 113.758 116.961 113.04 116.296C110.26 113.636 113.266 110.816 113.891 110.098C114.516 109.38 116.458 114.939 116.738 115.298C117.788 116.628 118.214 117.732 120.355 118.357C121.486 118.703 121.446 118.211 123.015 114.779C123.733 113.157 126.141 110.962 127.005 112.518C127.87 114.074 128.428 115.178 129.891 115.803C130.744 116.373 131.773 116.618 132.791 116.495C134.772 116.362 134.892 116.575 135.73 117.12C136.568 117.665 134.187 117.785 136.661 125.951C137.419 128.465 138.988 128.611 139.534 130.766C140.651 134.955 143.71 134.756 143.524 142.616C143.444 145.276 144.854 146.487 145.266 149.798C145.452 151.527 147.048 152.458 146.942 160.438C146.942 165.04 146.357 165.439 149.283 173.539C150.613 177.249 150.613 177.316 150.613 178.46C150.786 180.628 152.049 181.226 151.663 182.091C151.278 182.955 152.368 184.192 149.376 191.946V191.933ZM152.554 184.724C152.847 183.208 151.956 181.918 154.523 186.879C155.441 188.661 156.079 188.302 151.969 189.246C151.344 189.339 151.77 188.98 152.554 184.737V184.724ZM156.465 194.34C155.038 194.909 153.565 195.354 152.062 195.67C149.682 196.202 149.602 196.681 149.628 195.843C149.816 194.105 150.264 192.406 150.958 190.802C151.158 190.23 151.038 190.589 154.815 189.698C155.467 189.552 155.786 189.14 155.919 189.698C157.09 194.114 156.957 194.14 156.465 194.353V194.34ZM174.726 198.529C173.905 198.973 172.997 199.227 172.066 199.274C169.406 200.751 169.246 201.136 167.61 202.067C166.972 202.44 166.28 202.626 165.562 202.945C165.229 203.105 165.07 202.945 164.937 202.719C158.047 190.749 164.485 201.695 159.085 191.308C158.273 189.751 157.303 189.446 155.893 186.825C151.703 178.978 152.129 181.692 151.397 177.515C150.799 174.044 149.429 172.355 148.631 169.163C147.035 162.686 147.806 164.681 147.74 157.193C147.74 154.121 146.782 152.099 145.998 149.12C145.787 147.826 145.421 146.562 144.907 145.356C143.949 143.122 144.761 142.35 144.149 138.36C143.83 136.272 142.686 134.689 141.143 132.269C140.132 130.699 140.664 129.755 138.909 128C137.993 127.018 137.335 125.826 136.993 124.528C136.062 121.057 136.488 116.003 139.919 110.005C140.733 108.623 141.287 107.104 141.555 105.523C141.755 104.193 138.004 102.863 138.895 101.852C140.731 99.9366 140.451 99.0721 140.904 99.3647C142.54 100.455 143.75 101.08 144.122 102.025C145.106 104.419 144.388 103.74 145.452 105.868C145.825 106.64 146.397 108.528 145.452 108.861C140.239 111.255 144.229 109.659 139.853 113.343C137.938 114.952 137.991 117.333 138.523 117.333C138.762 117.333 138.975 117.24 138.988 116.974C139.135 114.806 141.542 113.742 142.832 111.867C143.667 110.829 144.83 110.107 146.131 109.818C147.461 109.313 147.008 106.52 146.131 105.097C145.844 104.436 145.634 103.744 145.505 103.035C145.505 102.849 145.585 102.956 145.638 103.035C149.003 104.951 148.298 103.035 148.697 107.797C148.219 114.673 150.666 113.902 149.575 121.27C149.003 125.1 152.461 123.398 152.887 120.738C154.097 113.037 152.488 113.476 155.347 118.889C155.64 119.434 156.425 122.879 157.382 125.087C157.592 125.723 157.897 126.324 158.287 126.869C158.431 126.963 158.594 127.027 158.765 127.055C158.935 127.083 159.109 127.076 159.277 127.034C159.444 126.991 159.601 126.914 159.738 126.808C159.874 126.702 159.987 126.569 160.069 126.417C160.197 125.899 160.219 125.361 160.135 124.834C159.923 123.597 159.697 121.961 159.51 121.19C159.284 120.192 159.298 120.286 160.322 122.826C162.782 128.984 162.104 125.765 164.844 137.655C166.174 143.374 167.357 145.236 167.384 146.141C166.892 146.034 165.429 145.05 164.485 145.835C164.389 145.898 164.309 145.981 164.248 146.077C164.187 146.173 164.147 146.282 164.13 146.395C164.114 146.508 164.122 146.623 164.153 146.733C164.184 146.842 164.238 146.944 164.312 147.032C165.056 148.122 167.357 149.452 167.929 150.556C166.214 149.851 163.128 145.915 160.495 147.019C160.338 147.075 160.197 147.169 160.085 147.292C159.973 147.415 159.892 147.563 159.85 147.724C159.808 147.885 159.806 148.054 159.844 148.216C159.883 148.379 159.96 148.529 160.069 148.654C160.29 148.9 160.535 149.122 160.8 149.319C163.66 151.7 162.729 150.743 160.92 150.849C160.68 150.886 160.458 150.999 160.287 151.171C160.115 151.343 160.003 151.565 159.966 151.805C159.929 152.045 159.969 152.29 160.081 152.506C160.193 152.721 160.37 152.896 160.588 153.004C161.266 153.456 161.918 154.147 162.49 154.52C168.142 158.51 165.389 156.781 170.922 159.401C171.653 159.747 171.999 159.56 172.145 159.72C172.223 159.891 172.264 160.077 172.265 160.265C172.957 165.585 172.97 164.814 172.385 165.013C170.922 165.479 169.379 165.918 169.073 167.54C168.767 169.163 171.613 169.748 173.156 169.496C174.486 169.283 173.156 169.934 175.444 172.807C176.473 174.441 177.363 176.158 178.104 177.941C179.141 180.601 186.962 189.632 186.283 190.244C184.501 191.879 174.832 198.476 174.726 198.543V198.529ZM188.757 199.607C187.906 200.391 187.986 201.642 188.039 202.918C188.039 203.597 187.932 203.69 186.935 205.326C186.855 205.472 186.775 205.512 186.709 205.326C185.951 202.998 184.421 202.12 183.597 199.633C182.666 196.734 181.469 197.958 185.392 194.406C190.526 189.751 186.044 188.568 186.895 187.956C187.701 187.238 188.411 186.42 189.01 185.522C191.47 195.909 189.635 191.374 188.491 196.667C188.132 198.396 189.169 199.261 188.757 199.62V199.607ZM235.972 197.465C234.948 196.747 234.642 196.495 234.323 196.455C234.221 196.435 234.116 196.447 234.021 196.488C233.927 196.53 233.847 196.6 233.794 196.689C233.74 196.777 233.715 196.88 233.721 196.983C233.728 197.086 233.766 197.185 233.831 197.266C234.256 197.705 234.655 197.944 234.27 198.157C233.038 198.876 231.597 199.153 230.187 198.942C229.349 198.942 231.796 196.614 230.519 196.069C229.788 195.75 229.548 197.16 228.777 198.237C226.117 201.841 224.228 199.155 221.994 200.019C220.996 200.405 218.589 200.79 219.214 200.086C219.64 199.607 220.544 199.048 219.906 198.463C219.467 198.077 218.576 199.061 218.296 199.327C217.472 200.391 216.301 200.485 214.918 200.657C213.202 200.923 212.458 197.904 211.606 198.503C211.221 198.756 211.274 199.022 212.391 200.564C212.631 200.897 209.731 202.147 206.619 201.269C203.507 200.391 205.542 200.086 205.568 199.181C205.579 199.059 205.549 198.937 205.483 198.834C205.417 198.731 205.32 198.652 205.205 198.61C205.09 198.567 204.964 198.564 204.847 198.6C204.731 198.636 204.629 198.709 204.557 198.809C203.414 200.032 204.358 199.713 201.764 201.136C201.073 201.522 200.7 201.136 198.04 200.631C196.99 200.431 196.085 199.301 194.995 198.117C194.436 197.505 193.811 198.117 194.17 198.676C194.782 199.633 195.287 199.766 194.795 199.873C192.973 200.245 192.667 199.873 190.725 199.048C190.433 198.901 190.175 198.693 189.967 198.44C189.76 198.186 189.608 197.892 189.522 197.576C189.435 197.26 189.416 196.93 189.465 196.606C189.515 196.282 189.631 195.972 189.808 195.697C191.63 192.584 191.257 192.372 191.297 191.8C191.444 189.14 189.794 186.387 190.3 182.676C190.3 182.676 190.42 178.686 190.406 178.087C190.3 174.417 189.076 173.299 188.824 169.974C188.506 167.77 188.306 165.55 188.225 163.324C188.877 163.657 203.414 181.093 203.919 181.625C208.255 186.293 212.697 193.023 217.405 192.89C217.964 192.89 220.743 193.183 222.419 191.56C224.095 189.938 226.768 190.164 230.546 175.281C232.235 168.631 240.095 145.622 240.228 135.288C240.292 132.898 240.176 130.506 239.882 128.133C239.9 128.122 239.921 128.117 239.942 128.117C239.963 128.117 239.984 128.122 240.002 128.133C244.59 136.671 237.435 159.773 236.118 166.995C235.912 168.54 235.601 170.068 235.187 171.57C234.724 173.468 234.4 175.398 234.216 177.343C233.857 179.205 234.722 181.678 235.134 184.684C235.413 186.825 233.578 187.198 236.996 192.93C237.701 194.101 238.512 195.271 237.621 196.495C237.169 197.106 236.717 197.997 235.972 197.492V197.465Z\"\n fill=\"#000001\"\n />\n <path\n d=\"M46.5664 73.5485C46.5664 72.418 47.8964 72.3914 47.8964 73.4288C47.8964 74.2534 46.593 74.4795 46.5664 73.5485Z\"\n fill=\"#000001\"\n />\n <path\n d=\"M47.1913 69.0942C48.109 69.0942 47.976 70.4242 47.1913 70.4242C46.4066 70.4242 46.3135 69.0942 47.1913 69.0942Z\"\n fill=\"#000001\"\n />\n <path\n d=\"M45.6885 80.9577C45.6973 80.8025 45.7674 80.6571 45.8834 80.5536C45.9994 80.4501 46.1517 80.3969 46.3069 80.4057C46.4621 80.4145 46.6075 80.4847 46.711 80.6006C46.8145 80.7166 46.8677 80.869 46.8589 81.0242C46.8456 81.9153 45.7018 81.7823 45.6885 80.9577Z\"\n fill=\"#000001\"\n />\n <path\n d=\"M45.6749 76.8351C45.6749 76.9415 45.3823 78.0055 44.7439 77.4203C43.3873 76.1834 45.5153 75.4785 45.6749 76.8351Z\"\n fill=\"#000001\"\n />\n <path\n d=\"M42.7897 72.7504C42.7699 72.652 42.7722 72.5504 42.7964 72.4529C42.8207 72.3555 42.8663 72.2647 42.9299 72.187C42.9935 72.1093 43.0736 72.0467 43.1643 72.0037C43.2551 71.9608 43.3543 71.9385 43.4547 71.9385C43.5551 71.9385 43.6542 71.9608 43.745 72.0037C43.8357 72.0467 43.9158 72.1093 43.9794 72.187C44.0431 72.2647 44.0886 72.3555 44.1129 72.4529C44.1371 72.5504 44.1395 72.652 44.1197 72.7504C44.1596 73.8011 42.7099 73.8011 42.7897 72.7504Z\"\n fill=\"#000001\"\n />\n <path\n d=\"M41.6056 79.9861C41.6056 79.7992 41.6798 79.6199 41.812 79.4877C41.9442 79.3555 42.1235 79.2812 42.3105 79.2812C42.4974 79.2812 42.6767 79.3555 42.8089 79.4877C42.9411 79.6199 43.0154 79.7992 43.0154 79.9861C42.9755 80.691 41.5923 80.8373 41.6056 79.9861Z\"\n fill=\"#000001\"\n />\n <path\n d=\"M42.8691 68.3223C43.0455 68.3223 43.2146 68.3923 43.3393 68.517C43.464 68.6418 43.5341 68.8109 43.5341 68.9873C43.5341 69.1636 43.464 69.3328 43.3393 69.4575C43.2146 69.5822 43.0455 69.6523 42.8691 69.6523C42.6927 69.6523 42.5236 69.5822 42.3989 69.4575C42.2742 69.3328 42.2041 69.1636 42.2041 68.9873C42.2041 68.8109 42.2742 68.6418 42.3989 68.517C42.5236 68.3923 42.6927 68.3223 42.8691 68.3223Z\"\n fill=\"#000001\"\n />\n <path\n d=\"M39.4643 75.5171C39.4943 75.3407 39.5931 75.1835 39.7391 75.0799C39.8113 75.0287 39.8929 74.9922 39.9793 74.9725C40.0657 74.9528 40.1551 74.9503 40.2424 74.9651C40.3297 74.98 40.4133 75.0119 40.4883 75.059C40.5633 75.1061 40.6283 75.1676 40.6795 75.2398C40.7308 75.3121 40.7673 75.3937 40.787 75.4801C40.8067 75.5664 40.8092 75.6558 40.7943 75.7432C40.7145 76.7274 39.3978 76.4614 39.4643 75.5171Z\"\n fill=\"#000001\"\n />\n <path\n d=\"M39.8366 67.6558C39.8366 68.4405 38.6662 68.6533 38.613 67.576C38.5598 66.4987 39.8233 66.645 39.8366 67.6558Z\"\n fill=\"#000001\"\n />\n <path\n d=\"M39.7031 89.2964C40.275 91.5574 36.5377 91.6638 38.7854 93.2864C38.8953 93.3606 38.9768 93.4699 39.0164 93.5964C39.056 93.7229 39.0515 93.8591 39.0036 93.9828C38.9557 94.1064 38.8672 94.2101 38.7527 94.2769C38.6382 94.3437 38.5043 94.3696 38.3731 94.3503C37.9875 94.2473 37.64 94.0345 37.373 93.7377C37.106 93.441 36.9308 93.0731 36.8689 92.6788C36.8069 92.2844 36.8607 91.8805 37.0239 91.5162C37.1871 91.1519 37.4525 90.8427 37.7879 90.6264C38.6258 90.0013 38.7322 89.9481 38.3066 88.8043C37.881 87.6605 37.2825 85.9714 36.0722 86.4901C35.4604 86.7561 35.1811 86.8758 35.1944 87.328C35.2077 87.7802 35.1944 88.3521 34.7422 88.3521C34.29 88.3521 34.1836 87.8467 34.1038 87.2349C34.024 86.6231 34.3565 85.7719 35.7264 85.333C38.1337 84.535 39.0647 86.796 39.7031 89.2964Z\"\n fill=\"#000001\"\n />\n <path\n d=\"M38.4002 71.9119C38.4002 70.8213 39.6238 70.7947 39.6105 71.9119C39.6234 71.9989 39.6175 72.0877 39.593 72.1722C39.5685 72.2566 39.5261 72.3348 39.4687 72.4014C39.4112 72.468 39.3401 72.5215 39.2602 72.5581C39.1802 72.5947 39.0933 72.6137 39.0054 72.6137C38.9174 72.6137 38.8305 72.5947 38.7505 72.5581C38.6706 72.5215 38.5995 72.468 38.542 72.4014C38.4846 72.3348 38.4422 72.2566 38.4177 72.1722C38.3932 72.0877 38.3873 71.9989 38.4002 71.9119Z\"\n fill=\"#000001\"\n />\n <path\n d=\"M38.5467 78.6301C38.5467 79.0424 38.4004 79.202 38.0147 79.202C37.629 79.202 37.4561 79.0557 37.4561 78.5902C37.4561 77.7922 38.5201 77.7922 38.5467 78.6301Z\"\n fill=\"#000001\"\n />\n <path\n d=\"M35.754 65.2227C36.1131 65.2227 36.2594 65.3956 36.2461 65.8345C36.2461 66.8852 35.0757 66.7921 35.089 65.8345C35.089 65.3956 35.2619 65.2227 35.754 65.2227Z\"\n fill=\"#000001\"\n />\n <path\n d=\"M35.2884 69.9574C35.2884 70.5027 34.3042 70.8884 34.251 69.9574C34.1978 69.0264 35.2618 69.1594 35.2884 69.9574Z\"\n fill=\"#000001\"\n />\n <path\n d=\"M33.9446 73.6707C33.9552 73.5155 34.027 73.3708 34.1442 73.2686C34.2023 73.2179 34.2697 73.1792 34.3427 73.1547C34.4158 73.1301 34.4929 73.1201 34.5697 73.1254C34.6466 73.1306 34.7216 73.1509 34.7906 73.1852C34.8596 73.2194 34.9212 73.267 34.9718 73.325C35.0225 73.383 35.0612 73.4505 35.0858 73.5235C35.1103 73.5965 35.1203 73.6736 35.115 73.7505C35.115 74.3357 34.982 74.4421 34.5032 74.4421C34.0244 74.4421 33.9047 74.1362 33.9446 73.6707Z\"\n fill=\"#000001\"\n />\n <path\n d=\"M34.5699 77.6854C34.6364 78.0312 34.6364 78.3504 34.2773 78.4967C33.5325 78.8026 33.067 77.2598 33.9714 77.1667C34.3704 77.1401 34.4635 77.2199 34.5699 77.6854Z\"\n fill=\"#000001\"\n />\n <path\n d=\"M25.1273 36.0965C25.1273 38.5038 25.2603 39.0225 24.715 39.6476C24.4224 39.9801 23.5579 40.9776 23.1057 40.9776C17.2138 41.5096 17.8788 41.5761 18.065 38.1979C18.1988 36.5685 17.8123 34.9387 16.9611 33.5429C16.3424 32.7252 15.6621 31.956 14.9262 31.242C13.3435 30.0716 16.2562 27.518 17.8788 26.4008C20.0334 24.9245 24.6352 30.5105 25.0608 33.3833C25.1938 34.2478 25.0874 36.0965 25.1273 36.0965ZM24.0899 34.5404C24.0491 33.0088 23.4806 31.5383 22.4806 30.3775C19.3019 26.0018 18.4906 26.7865 15.6577 29.8721C15.2188 30.3642 16.0301 30.311 16.9877 31.8538C17.4266 32.5321 18.3177 32.8646 18.6768 34.5138C19.7674 39.8338 18.4241 40.2195 19.5945 40.1397C25.3401 39.8072 23.9436 39.5944 24.0899 34.5404Z\"\n fill=\"#000001\"\n />\n <path\n d=\"M23.1317 57.0821C24.3553 58.4121 23.5706 59.7421 22.9455 61.5376C22.3204 63.3331 22.4002 63.905 21.416 63.5326C21.1633 63.4395 17.1334 61.4445 16.8275 61.4312C11.2415 61.245 10.0977 64.1976 10.1775 57.9067C10.1775 56.4836 9.97801 55.8585 11.2415 55.0206C14.2473 52.999 17.5191 53.8635 20.5515 54.7546C21.7086 55.1802 22.0411 55.925 23.1317 57.0821ZM21.9347 61.0721C22.746 58.7446 22.9322 58.5717 22.4268 57.9865C21.6057 56.8127 20.4597 55.9042 19.1295 55.3726C17.7993 54.841 16.3428 54.7094 14.9389 54.994C13.6887 54.8743 11.0952 55.7787 11.0553 56.9624C11.0149 58.1 11.1087 59.2383 11.3346 60.3539C11.4543 60.9258 11.4676 60.8992 12.0528 60.7396C14.2473 60.1544 16.3753 59.7554 18.4102 60.7396C19.4137 61.1095 20.3764 61.5819 21.283 62.1494C21.4958 62.3888 21.5224 62.3223 21.9347 61.1386V61.0721Z\"\n fill=\"#000001\"\n />\n <path\n d=\"M17.3467 93.6731C18.4107 95.0031 19.3151 96.506 17.5994 96.7587C16.3758 96.9449 14.5936 97.171 13.6094 96.4129C11.774 95.0829 10.9494 94.7105 10.3642 92.5825C9.63902 90.3342 9.63902 87.9148 10.3642 85.6665C11.3218 83.3789 11.3484 83.4454 13.3833 83.4454C14.5751 83.3899 15.7624 83.6274 16.8413 84.137C18.3708 84.9882 16.9211 85.6133 17.0142 90.2683C17.0807 92.9549 16.8679 93.0613 17.3467 93.6731ZM17.1472 95.7745C17.6925 95.7745 17.2669 95.3489 16.4024 94.2982C15.5379 93.2475 15.9502 88.6989 16.0699 87.8211C16.4024 85.4803 16.6551 85.2409 16.2561 85.1611C11.3218 83.8311 11.8272 84.8286 11.1223 87.3157C10.0716 90.9067 11.4282 96.0006 17.1472 95.7745Z\"\n fill=\"#000001\"\n />\n </svg>\n );\n}\n\nexport default PostUploadSuccess;\n","'use client';\nimport React, { useMemo, type JSX } from 'react';\nimport { motion } from 'motion/react';\nimport { cn } from '@/lib/utils';\n\nexport type TextShimmerProps = {\n children: string;\n as?: React.ElementType;\n className?: string;\n duration?: number;\n spread?: number;\n};\n\nexport function TextShimmer({\n children,\n as: Component = 'p',\n className,\n duration = 2,\n spread = 2,\n}: TextShimmerProps) {\n const MotionComponent = motion.create(\n Component as keyof JSX.IntrinsicElements\n );\n\n const dynamicSpread = useMemo(() => {\n return children.length * spread;\n }, [children, spread]);\n\n return (\n <MotionComponent\n className={cn(\n 'relative inline-block bg-[length:250%_100%,auto] bg-clip-text',\n 'text-transparent [--base-color:#a1a1aa] [--base-gradient-color:#000]',\n '[--bg:linear-gradient(90deg,#0000_calc(50%-var(--spread)),var(--base-gradient-color),#0000_calc(50%+var(--spread)))] [background-repeat:no-repeat,padding-box]',\n 'dark:[--base-color:#71717a] dark:[--base-gradient-color:#ffffff] dark:[--bg:linear-gradient(90deg,#0000_calc(50%-var(--spread)),var(--base-gradient-color),#0000_calc(50%+var(--spread)))]',\n className\n )}\n initial={{ backgroundPosition: '100% center' }}\n animate={{ backgroundPosition: '0% center' }}\n transition={{\n repeat: Infinity,\n duration,\n ease: 'linear',\n }}\n style={\n {\n '--spread': `${dynamicSpread}px`,\n backgroundImage: `var(--bg), linear-gradient(var(--base-color), var(--base-color))`,\n } as React.CSSProperties\n }\n >\n {children}\n </MotionComponent>\n );\n}\n","import { Loader2 } from 'lucide-react';\nimport PostUploadSuccess from '@/components/Illustrations/PostUploadSuccess';\nimport { TextShimmer } from '@/components/ui/text-shimmer';\n\nfunction PostStatus({ isLoading }: { isLoading: boolean }) {\n if (isLoading) {\n return (\n <div className=\"text-center space-y-4\">\n <TextShimmer className=\"text-4xl font-bold\">Processing </TextShimmer>\n <div className=\"w-48 h-48 mx-auto flex items-center justify-center\">\n <Loader2 className=\"w-16 h-16 animate-spin text-primary\" />\n </div>\n <h3 className=\"text-2xl font-semibold\">Please wait</h3>\n <p className=\"text-muted-foreground\">\n We're processing your data. This may take a moment.\n </p>\n </div>\n );\n }\n\n return (\n <div className=\"text-center space-y-4\">\n <h2 className=\"text-4xl font-bold\">OOOhoo!!</h2>\n <div className=\"w-48 h-auto mx-auto\">\n <PostUploadSuccess />\n </div>\n <h3 className=\"text-2xl font-semibold\">File Uploaded Successfully! 🎉</h3>\n <p className=\"text-muted-foreground\">\n Your model will be published once the verification process is finished.\n </p>\n </div>\n );\n}\n\nexport default PostStatus;\n","import { z } from 'zod';\nimport { useForm } from 'react-hook-form';\nimport { zodResolver } from '@hookform/resolvers/zod';\nimport {\n onefinityModelSchema,\n postUploadSchema,\n jobSetupModelSchema,\n modelToolMappingSchema,\n} from './post.schema';\nimport {} from '@/pages/PostUpload';\nimport { IBitUsedUnit, IBitType, IPostUploadData } from '@/redux/post/post.d';\n\n// eslint-disable-next-line import/prefer-default-export\nexport const usePostUploadForm = (defaultValues: IPostUploadData) => {\n return useForm<z.infer<typeof postUploadSchema>>({\n resolver: zodResolver(postUploadSchema),\n defaultValues: defaultValues as any,\n mode: 'onChange',\n });\n};\n\nexport const useOnefinityModelForm = (defaultValues: IPostUploadData) => {\n return useForm<z.infer<typeof onefinityModelSchema>>({\n resolver: zodResolver(onefinityModelSchema),\n defaultValues: defaultValues as any,\n mode: 'onBlur',\n });\n};\n\nexport const useModelToolMappingForm = (formData: IPostUploadData) => {\n const form = useForm<z.infer<typeof modelToolMappingSchema>>({\n defaultValues: {\n selectedModel: 0,\n toolUnit: formData.toolData?.[0]?.toolUnit || IBitUsedUnit.INCHES,\n toolUsed: formData.toolData?.[0]?.toolUsed || 0.015625,\n toolType: formData.toolData?.[0]?.toolType || IBitType.UPCUT_ENDMILL,\n },\n resolver: zodResolver(modelToolMappingSchema),\n mode: 'onChange',\n });\n\n return form;\n};\n\nexport const useJobSetupModelForm = (defaultValues: IPostUploadData) => {\n return useForm<z.infer<typeof jobSetupModelSchema>>({\n resolver: zodResolver(jobSetupModelSchema),\n defaultValues: defaultValues as any,\n mode: 'onBlur',\n });\n};\n","import apiSlice from '../api/api.slice';\nimport { ICreateTagBody, IGetTagsParams, ITag } from './tag';\n\nexport const createTag = apiSlice.injectEndpoints({\n endpoints: (builder) => ({\n createTag: builder.mutation<ITag, ICreateTagBody>({\n query: (body) => ({\n url: `/api/v1/tag/create`,\n method: 'POST',\n body,\n }),\n transformResponse: (response: { tag: ITag }) => response.tag,\n }),\n getTags: builder.query<ITag[], IGetTagsParams>({\n query: (params) => ({\n url: `/api/v1/tag/getTags`,\n method: 'GET',\n params,\n }),\n transformResponse: (response: { tags: ITag[] }) => response.tags,\n }),\n deleteTag: builder.mutation<void, string>({\n query: (id) => ({\n url: `/api/v1/tag/delete?id=${id}`,\n method: 'DELETE',\n }),\n }),\n }),\n});\n\napiSlice.enhanceEndpoints({\n addTagTypes: ['Tag'],\n endpoints: {\n getTags: {\n addTagTypes: ['Tag'],\n },\n deleteTag: {\n invalidatesTags: ['Tag'],\n },\n createTag: {\n invalidatesTags: ['Tag'],\n },\n },\n});\n\nexport const { useCreateTagMutation, useGetTagsQuery, useDeleteTagMutation } =\n createTag;\n","export interface ITag {\n _id?: string;\n name: string;\n createdAt: string;\n createdBy: string;\n}\n\nexport enum ITagType {\n POST = 'post',\n}\nexport interface ICreateTagBody {\n name: string;\n type: ITagType;\n}\n\nexport interface IGetTagsParams {\n type?: ITagType;\n}\n","import { FileImage, Upload, X } from 'lucide-react';\nimport { ChangeEvent, Dispatch, SetStateAction, useState } from 'react';\nimport Select, { MultiValue } from 'react-select';\nimport { toast } from 'sonner';\nimport CreatableSelect from 'react-select/creatable';\nimport { Input } from '@/components/ui/input';\nimport {\n Form,\n FormControl,\n FormField,\n FormItem,\n FormLabel,\n} from '@/components/ui/form';\nimport { usePostUploadForm } from '@/redux/post/usePostForm';\nimport { useGetCategoriesQuery } from '@/redux/category/category.api.slice';\nimport { ICategoryType } from '@/redux/category/category.d';\nimport { Textarea } from '@/components/ui/textarea';\nimport {\n useCreateTagMutation,\n useGetTagsQuery,\n} from '@/redux/tag/tag.api.slice';\nimport { ITagType } from '@/redux/tag/tag.d';\nimport SectionHeader from '@/components/FullPageCarousel/SectionHeader';\nimport ErrorMessage from '@/components/ErrorMessage';\nimport { DropZone } from '@/components/ui/drop-zone';\nimport { Button } from '@/components/ui/button';\nimport { imageExtensions } from '@/redux/post/post.schema';\nimport {\n IBuiltWith,\n IPostAttachment,\n IPostUploadData,\n} from '@/redux/post/post.d';\n\nfunction BasicDetails({\n formData,\n errors,\n setFormData,\n}: {\n formData: IPostUploadData;\n errors: { [key: string]: string };\n setFormData: Dispatch<SetStateAction<IPostUploadData>>;\n}) {\n const uploadPostForm = usePostUploadForm(formData);\n const { data: categories, isLoading: isLoadingPostCategories } =\n useGetCategoriesQuery({ type: ICategoryType.POST });\n const {\n data: postTags,\n refetch: refetchTags,\n isLoading: isTagsLoading,\n } = useGetTagsQuery({\n type: ITagType.POST,\n });\n const [createTag] = useCreateTagMutation();\n const [preview, setPreview] = useState<string>();\n\n const handleCategoryChange = ({ value }: { value?: string | undefined }) => {\n if (value) {\n setFormData((prev) => ({ ...prev, category: value }) as any);\n }\n };\n\n const getPostCategoryOptions = (): {\n label: string;\n value: string;\n } => {\n const options = categories?.map((category) => ({\n label: category.name,\n value: category._id as string,\n }));\n\n return options as any;\n };\n\n const getTagOptions = () => {\n const options = postTags?.map((tag) => ({\n label: tag.name,\n value: tag._id as string,\n }));\n return options;\n };\n\n const handleCreateTag = async (option: string) => {\n try {\n const newTag = await createTag({\n name: option,\n type: ITagType.POST,\n });\n\n if (newTag?.error) {\n // refactor this\n const { data } = newTag.error as {\n data: {\n message: string;\n };\n };\n throw new Error(data.message);\n }\n\n await refetchTags();\n const existingOptions = formData.tags || [];\n setFormData(\n (prev) =>\n ({\n ...prev,\n tags: [...existingOptions, newTag.data?._id as string],\n }) as any\n );\n toast.success('Tag created successfully');\n } catch (e: any) {\n toast.error(e.message);\n }\n };\n\n const handleTagChange = (\n options: MultiValue<{ label: string; value: string }>\n ) => {\n setFormData(\n (prev) =>\n ({\n ...prev,\n tags: options?.map((option) => option.value),\n }) as any\n );\n };\n\n const handleInputChange = (\n e: ChangeEvent<HTMLTextAreaElement | HTMLInputElement>\n ) => {\n const { name, value } = e.target;\n setFormData((prev) => ({ ...prev, [name]: value }));\n };\n\n const getObjectUrlFromFile = (file: File | IPostAttachment) => {\n if (file instanceof File) {\n return URL.createObjectURL(file);\n }\n return file.url;\n };\n\n const handleFileChange = (event: ChangeEvent<HTMLInputElement>) => {\n if (event.target.files && event.target.files[0]) {\n const file = event.target.files[0];\n setFormData((prev) => ({\n ...prev,\n thumbnail: file,\n }));\n const url = getObjectUrlFromFile(file);\n setPreview(url);\n }\n };\n\n const handleRemoveFile = () => {\n setFormData((prev) => ({\n ...prev,\n thumbnail: null,\n }));\n setPreview('');\n };\n\n const getThumbnailName = (thumbnail: File | IPostAttachment): string => {\n if (thumbnail instanceof File) {\n return thumbnail.name;\n }\n\n return thumbnail.fileName;\n };\n\n const handleSelectChange = (name: string, value: string) => {\n setFormData((prev) => ({ ...prev, [name]: value }));\n };\n\n const resetOnefinityDetails = () => {\n setFormData((prev) => ({\n ...prev,\n onefinityModel: '',\n onefinityCommand: '',\n onefinityTool: '',\n }));\n };\n\n return (\n <div className=\"space-y-6\">\n <SectionHeader\n title=\"Basic Details\"\n description=\"Enter basic details about your model\"\n />\n <div className=\"space-y-4\">\n <Form {...uploadPostForm}>\n <form>\n <div className=\"flex flex-col py-2 gap-4\">\n <div className=\"flex flex-col gap-2\">\n <FormField\n control={uploadPostForm.control}\n name=\"title\"\n render={({ field }) => (\n <FormItem>\n <FormLabel>Title</FormLabel>\n <FormControl>\n <Input\n {...field}\n type=\"text\"\n placeholder=\"Enter title\"\n onChange={handleInputChange}\n value={formData.title}\n />\n </FormControl>\n <ErrorMessage error={errors.title} />\n </FormItem>\n )}\n />\n </div>\n\n <div className=\"flex flex-col gap-2\">\n <FormField\n control={uploadPostForm.control}\n name=\"description\"\n render={({ field }) => (\n <FormItem>\n <FormLabel>Description</FormLabel>\n <FormControl>\n <Textarea\n {...field}\n placeholder=\"Enter description\"\n onChange={handleInputChange}\n value={formData.description}\n />\n </FormControl>\n <ErrorMessage error={errors.description} />\n </FormItem>\n )}\n />\n </div>\n <div className=\"grid grid-cols-1 md:grid-cols-2 gap-4\">\n <div className=\"flex flex-col gap-2\">\n <FormField\n control={uploadPostForm.control}\n name=\"category\"\n render={({ field }) => (\n <FormItem>\n <FormLabel>Category</FormLabel>\n <FormControl>\n <Select\n options={getPostCategoryOptions() as any}\n onChange={(newValue) =>\n handleCategoryChange({\n ...newValue,\n } as unknown as { value: string })\n }\n isLoading={isLoadingPostCategories}\n isSearchable\n name={field.name}\n value={\n formData.category\n ? {\n label:\n categories?.find(\n (cat) => cat._id === formData.category\n )?.name || '',\n value: formData.category,\n }\n : null\n }\n />\n </FormControl>\n <ErrorMessage error={errors.category} />\n </FormItem>\n )}\n />\n </div>\n\n <div className=\"flex flex-col gap-2\">\n <FormField\n control={uploadPostForm.control}\n name=\"tags\"\n render={({ field }) => (\n <FormItem>\n <FormLabel>Tags</FormLabel>\n <FormControl>\n <CreatableSelect\n isMulti\n options={getTagOptions()}\n isLoading={isTagsLoading}\n name={field.name}\n onCreateOption={handleCreateTag}\n onChange={(newValue) =>\n handleTagChange(newValue as any)\n }\n value={formData?.tags\n .map((tagId) => {\n const tag = postTags?.find(\n (t) => t._id === tagId\n );\n return tag\n ? { label: tag.name, value: tag._id }\n : null;\n })\n .filter(Boolean)}\n />\n </FormControl>\n <ErrorMessage error={errors.tags} />\n </FormItem>\n )}\n />\n </div>\n </div>\n <div className=\"flex flex-col gap-2\">\n <FormField\n control={uploadPostForm.control}\n name=\"builtWith\"\n render={({ field }) => (\n <FormItem>\n <FormLabel>Machine Used</FormLabel>\n <FormControl>\n <Select\n options={Object.values(IBuiltWith).map((option) => ({\n label: option,\n value: option,\n }))}\n onChange={(selectedOption) => {\n if (selectedOption?.value) {\n handleSelectChange(\n field.name,\n selectedOption.value\n );\n if (selectedOption.value === IBuiltWith.OTHERS) {\n resetOnefinityDetails();\n }\n }\n }}\n isSearchable\n name={field.name}\n value={\n formData.builtWith\n ? {\n label: formData.builtWith,\n value: formData.builtWith,\n }\n : null\n }\n />\n </FormControl>\n <ErrorMessage error={errors.builtWith} />\n </FormItem>\n )}\n />\n </div>\n <div>\n <DropZone\n onDrop={handleFileChange}\n preview={preview}\n setPreview={setPreview}\n >\n <Upload className=\"mx-auto h-12 w-12 text-muted-foreground\" />\n <div className=\"mt-4\">\n <p className=\"text-sm text-muted-foreground\">\n Select a file or drag and drop here\n </p>\n <p className=\"text-xs text-muted-foreground mt-1\">\n Images, Vectors, Documents\n </p>\n <p className=\"text-xs text-muted-foreground mt-1\">\n Make sure select your display image first\n </p>\n </div>\n <Input\n type=\"file\"\n className=\"hidden\"\n onChange={handleFileChange}\n accept={imageExtensions.join(',')}\n id=\"file-upload\"\n />\n <Button\n variant=\"outline\"\n type=\"button\"\n className=\"mt-4 border-gradient border-2\"\n onClick={(e) => {\n e.preventDefault();\n document.getElementById('file-upload')?.click();\n }}\n >\n Select file\n </Button>\n <ErrorMessage error={errors.mediaFiles} />\n </DropZone>\n </div>\n {formData.thumbnail && (\n <div className=\"flex flex-col gap-4 max-h-56 overflow-auto\">\n <div className=\"space-y-4\">\n <Button\n variant=\"outline\"\n type=\"button\"\n className=\"flex gap-2 py-2 px-4 rounded-sm w-full\"\n onClick={(e) => {\n e.stopPropagation();\n if (!formData?.thumbnail) return;\n const url = getObjectUrlFromFile(formData.thumbnail);\n setPreview(url);\n }}\n >\n <FileImage className=\"text-[#0F91D2]\" />\n <div className=\"flex-1 truncate\">\n {getThumbnailName(formData.thumbnail)}\n </div>\n <Button\n variant=\"ghost\"\n type=\"button\"\n className=\"rounded-full cursor-pointer\"\n onClick={(e) => {\n e.stopPropagation();\n handleRemoveFile();\n }}\n >\n <X className=\"h-3 w-3\" />\n </Button>\n </Button>\n </div>\n </div>\n )}\n </div>\n </form>\n </Form>\n </div>\n </div>\n );\n}\n\nexport default BasicDetails;\n","import { Dispatch, SetStateAction } from 'react';\nimport Select from 'react-select';\nimport {\n Form,\n FormControl,\n FormField,\n FormItem,\n FormLabel,\n} from '@/components/ui/form';\nimport { useOnefinityModelForm } from '@/redux/post/usePostForm';\nimport SectionHeader from '@/components/FullPageCarousel/SectionHeader';\nimport ErrorMessage from '@/components/ErrorMessage';\nimport {\n IOnefinityController,\n IOnefinityModel,\n IOnefinitySize,\n IPostUploadData,\n} from '@/redux/post/post.d';\n\nfunction OnefinityDetails({\n formData,\n errors,\n setFormData,\n}: {\n formData: IPostUploadData;\n errors: { [key: string]: string };\n setFormData: Dispatch<SetStateAction<IPostUploadData>>;\n}) {\n const onefinityModelForm = useOnefinityModelForm(formData);\n\n const handleSelectChange = (name: string, value: string) => {\n setFormData((prev) => ({ ...prev, [name]: value }));\n };\n\n return (\n <div className=\"space-y-6\">\n <SectionHeader\n title=\"Onefinity Details\"\n description=\"Enter onefinity details about your model\"\n />\n <div className=\"space-y-4\">\n <Form {...onefinityModelForm}>\n <form>\n <div className=\"flex flex-col py-2 gap-4\">\n <div className=\"flex flex-col gap-2\">\n <FormField\n control={onefinityModelForm.control}\n name=\"onefinityModel\"\n render={({ field }) => (\n <FormItem>\n <FormLabel>Onefinity Model</FormLabel>\n <FormControl>\n <Select\n options={Object.values(IOnefinityModel).map(\n (option) => ({\n label: option,\n value: option,\n })\n )}\n onChange={(selectedOption) => {\n if (selectedOption?.value) {\n handleSelectChange(\n field.name,\n selectedOption.value\n );\n }\n }}\n isSearchable\n name={field.name}\n value={{\n label: Object.values(IOnefinityModel).filter(\n (model) => model === formData.onefinityModel\n ) as unknown as string,\n value: Object.values(IOnefinityModel).filter(\n (model) => model === formData.onefinityModel\n ) as unknown as string,\n }}\n />\n </FormControl>\n <ErrorMessage error={errors.onefinityModel} />\n </FormItem>\n )}\n />\n </div>\n\n <div className=\"flex flex-col gap-2\">\n <FormField\n control={onefinityModelForm.control}\n name=\"onefinityController\"\n render={({ field }) => (\n <FormItem>\n <FormLabel>Onefinity Controller</FormLabel>\n <FormControl>\n <Select\n options={Object.values(IOnefinityController).map(\n (option) => ({\n label: option,\n value: option,\n })\n )}\n onChange={(selectedOption) => {\n if (selectedOption?.value) {\n handleSelectChange(\n field.name,\n selectedOption.value\n );\n }\n }}\n isSearchable\n name={field.name}\n value={{\n label: Object.values(IOnefinityController).filter(\n (model) => model === formData.onefinityController\n ) as unknown as string,\n value: Object.values(IOnefinityController).filter(\n (model) => model === formData.onefinityController\n ) as unknown as string,\n }}\n />\n </FormControl>\n <ErrorMessage error={errors.onefinityController} />\n </FormItem>\n )}\n />\n </div>\n\n <div className=\"flex flex-col gap-2\">\n <FormField\n control={onefinityModelForm.control}\n name=\"onefinitySize\"\n render={({ field }) => (\n <FormItem>\n <FormLabel>Onefinity Size</FormLabel>\n <FormControl>\n <Select\n options={Object.values(IOnefinitySize).map(\n (option) => ({\n label: option,\n value: option,\n })\n )}\n onChange={(selectedOption) => {\n if (selectedOption?.value) {\n handleSelectChange(\n field.name,\n selectedOption.value\n );\n }\n }}\n isSearchable\n name={field.name}\n value={{\n label: Object.values(IOnefinitySize).filter(\n (model) => model === formData.onefinitySize\n ) as unknown as string,\n value: Object.values(IOnefinitySize).filter(\n (model) => model === formData.onefinitySize\n ) as unknown as string,\n }}\n />\n </FormControl>\n <ErrorMessage error={errors.onefinitySize} />\n </FormItem>\n )}\n />\n </div>\n </div>\n </form>\n </Form>\n </div>\n </div>\n );\n}\n\nexport default OnefinityDetails;\n","import * as React from 'react';\nimport * as RadioGroupPrimitive from '@radix-ui/react-radio-group';\nimport { Circle } from 'lucide-react';\n\nimport { cn } from '@/lib/utils';\n\nconst RadioGroup = React.forwardRef<\n React.ElementRef<typeof RadioGroupPrimitive.Root>,\n React.ComponentPropsWithoutRef<typeof RadioGroupPrimitive.Root>\n>(({ className, ...props }, ref) => {\n return (\n <RadioGroupPrimitive.Root\n className={cn('grid gap-2', className)}\n {...props}\n ref={ref}\n />\n );\n});\nRadioGroup.displayName = RadioGroupPrimitive.Root.displayName;\n\nconst RadioGroupItem = React.forwardRef<\n React.ElementRef<typeof RadioGroupPrimitive.Item>,\n React.ComponentPropsWithoutRef<typeof RadioGroupPrimitive.Item>\n>(({ className, ...props }, ref) => {\n return (\n <RadioGroupPrimitive.Item\n ref={ref}\n className={cn(\n 'aspect-square h-4 w-4 rounded-full border border-primary text-primary ring-offset-background focus:outline-none focus-visible:ring-2 focus-visible:ring-ring focus-visible:ring-offset-2 disabled:cursor-not-allowed disabled:opacity-50',\n className\n )}\n {...props}\n >\n <RadioGroupPrimitive.Indicator className=\"flex items-center justify-center\">\n <Circle className=\"h-2.5 w-2.5 fill-current text-current\" />\n </RadioGroupPrimitive.Indicator>\n </RadioGroupPrimitive.Item>\n );\n});\nRadioGroupItem.displayName = RadioGroupPrimitive.Item.displayName;\n\nexport { RadioGroup, RadioGroupItem };\n","import { Dispatch, SetStateAction } from 'react';\nimport Select from 'react-select';\nimport {\n Form,\n FormControl,\n FormField,\n FormItem,\n FormLabel,\n} from '@/components/ui/form';\nimport { useJobSetupModelForm } from '@/redux/post/usePostForm';\nimport SectionHeader from '@/components/FullPageCarousel/SectionHeader';\nimport ErrorMessage from '@/components/ErrorMessage';\nimport {\n IJobType,\n IUnits,\n IZZeroPosition,\n IXYDatumPosition,\n ILaserOrEndmill,\n IToolSetter,\n IProbeForZHeightCommand,\n IPostUploadData,\n ISoftwareUsed,\n IMaterialUsed,\n GroupedEnum,\n} from '@/redux/post/post.d'; // Adjust import path as needed\nimport { RadioGroup, RadioGroupItem } from '@/components/ui/radio-group';\nimport {\n getGroupedOptionsFlat,\n getGroupedOptionsFromEnumAsGroups,\n} from '@/redux/post/post.utils';\n\nfunction JobSetupDetails({\n formData,\n errors,\n setFormData,\n}: {\n formData: IPostUploadData;\n errors: { [key: string]: string };\n setFormData: Dispatch<SetStateAction<IPostUploadData>>;\n}) {\n const jobSetupModelForm = useJobSetupModelForm(formData);\n\n const handleSelectChange = (name: string, value: string) => {\n setFormData((prev) => ({ ...prev, [name]: value }));\n };\n\n const handleNumberChange = (name: string, value: number | string) => {\n setFormData((prev) => ({ ...prev, [name]: value }));\n };\n\n return (\n <div className=\"space-y-6\">\n <SectionHeader\n title=\"Job Setup Details\"\n description=\"Enter job setup and machining details\"\n />\n <div className=\"space-y-4\">\n <Form {...jobSetupModelForm}>\n <form>\n <div className=\"flex flex-col py-2 gap-4 flex-wrap\">\n <div className=\"grid grid-cols-1 md:grid-cols-2 gap-4\">\n <div className=\"flex flex-col gap-2\">\n <FormField\n control={jobSetupModelForm.control}\n name=\"softwareUsed\"\n render={({ field }) => (\n <FormItem>\n <FormLabel>Software Used</FormLabel>\n <FormControl>\n <Select\n options={Object.values(ISoftwareUsed).map(\n (option: string) => ({\n label: option,\n value: option,\n })\n )}\n onChange={(selectedOption) => {\n if (selectedOption?.value) {\n handleSelectChange(\n field.name,\n selectedOption.value\n );\n }\n }}\n isSearchable\n name={field.name}\n value={{\n label: Object.values(ISoftwareUsed).filter(\n (model) => model === formData.softwareUsed\n ) as unknown as string,\n value: Object.values(ISoftwareUsed).filter(\n (model) => model === formData.softwareUsed\n ) as unknown as string,\n }}\n />\n </FormControl>\n <ErrorMessage error={errors.softwareUsed} />\n </FormItem>\n )}\n />\n </div>\n\n <div className=\"flex flex-col gap-2\">\n <FormField\n control={jobSetupModelForm.control}\n name=\"materialUsed\"\n render={({ field }) => (\n <FormItem>\n <FormLabel>Material Used</FormLabel>\n <FormControl>\n <Select\n options={getGroupedOptionsFromEnumAsGroups(\n IMaterialUsed as unknown as GroupedEnum\n )}\n onChange={(selectedOption) => {\n if (selectedOption && selectedOption.label) {\n handleSelectChange(\n field.name,\n selectedOption.label\n );\n }\n }}\n isSearchable\n name={field.name}\n value={{\n label: getGroupedOptionsFlat(\n IMaterialUsed as unknown as GroupedEnum\n ).filter(\n (model: any) => model === formData.materialUsed\n ) as unknown as string,\n value: getGroupedOptionsFlat(\n IMaterialUsed as unknown as GroupedEnum\n ).filter(\n (model: any) => model === formData.materialUsed\n ) as unknown as string,\n }}\n />\n </FormControl>\n <ErrorMessage error={errors.materialUsed} />\n </FormItem>\n )}\n />\n </div>\n </div>\n <div className=\"grid grid-cols-1 md:grid-cols-2 gap-4\">\n <div className=\"flex flex-col gap-2\">\n <FormField\n control={jobSetupModelForm.control}\n name=\"jobType\"\n render={({ field }) => (\n <FormItem>\n <FormLabel>Job Type</FormLabel>\n <FormControl>\n <Select\n options={Object.values(IJobType).map((option) => ({\n label: option,\n value: option,\n }))}\n onChange={(option) => {\n if (option?.value) {\n handleNumberChange(field.name, option.value);\n }\n }}\n isSearchable\n name={field.name}\n value={{\n label: Object.values(IJobType).filter(\n (jobType) => jobType === formData.jobType\n ) as unknown as string,\n value: Object.values(IJobType).filter(\n (jobType) => jobType === formData.jobType\n ) as unknown as string,\n }}\n />\n </FormControl>\n <ErrorMessage error={errors.jobSetupModel} />\n </FormItem>\n )}\n />\n </div>\n <div className=\"flex flex-col gap-2\">\n <FormField\n control={jobSetupModelForm.control}\n name=\"units\"\n render={({ field }) => (\n <FormItem>\n <FormLabel>Job Type Units</FormLabel>\n <FormControl>\n <RadioGroup\n onValueChange={(value) =>\n handleSelectChange(field.name, value)\n }\n defaultValue={field.value || formData.units}\n className=\"flex gap-4\"\n >\n {Object.values(IUnits).map((option) => (\n <button\n type=\"button\"\n key={option}\n className=\"flex items-center space-x-2 w-full border border-[#D6D6D6] h-[40px] p-2 rounded-sm cursor-pointer\"\n onClick={() => field.onChange(option)}\n >\n <RadioGroupItem value={option} id={option} />\n <label\n htmlFor={option}\n className=\"text-sm font-medium leading-none peer-disabled:cursor-not-allowed peer-disabled:opacity-70 flex-1\"\n >\n {option}\n </label>\n </button>\n ))}\n </RadioGroup>\n </FormControl>\n <ErrorMessage error={errors.units} />\n </FormItem>\n )}\n />\n </div>\n </div>\n\n <div className=\"grid grid-cols-1 md:grid-cols-3 gap-4\">\n <div className=\"flex flex-col gap-2\">\n <FormField\n control={jobSetupModelForm.control}\n name=\"jobSizeWidth\"\n render={({ field }) => (\n <FormItem>\n <FormLabel>Job Size (X) in {formData.units}</FormLabel>\n <FormControl>\n <input\n type=\"number\"\n value={field.value || formData.jobSizeWidth}\n onChange={(e) => {\n field.onChange(e.target.value);\n }}\n onBlur={(e) => {\n const value = parseFloat(e.target.value);\n field.onChange(value);\n handleNumberChange(field.name, value);\n }}\n className=\"w-full p-2 border rounded\"\n />\n </FormControl>\n <ErrorMessage error={errors.jobSizeWidth} />\n <ErrorMessage error={errors.jobSizeWidth} />\n </FormItem>\n )}\n />\n </div>\n\n <div className=\"flex flex-col gap-2\">\n <FormField\n control={jobSetupModelForm.control}\n name=\"jobSizeHeight\"\n render={({ field }) => (\n <FormItem>\n <FormLabel>Job Size (Y) in {formData.units}</FormLabel>\n <FormControl>\n <input\n type=\"number\"\n value={field.value || formData.jobSizeHeight}\n onChange={(e) => {\n field.onChange(e.target.value);\n }}\n onBlur={(e) => {\n const value = parseFloat(e.target.value);\n field.onChange(value);\n handleNumberChange(field.name, value);\n }}\n className=\"w-full p-2 border rounded\"\n />\n </FormControl>\n <ErrorMessage error={errors.jobSizeHeight} />\n </FormItem>\n )}\n />\n </div>\n\n <div className=\"flex flex-col gap-2\">\n <FormField\n control={jobSetupModelForm.control}\n name=\"jobSizeThickness\"\n render={({ field }) => (\n <FormItem>\n <FormLabel>Job Size (Z) in {formData.units}</FormLabel>\n <FormControl>\n <input\n type=\"number\"\n value={field.value || formData.jobSizeThickness}\n onChange={(e) => {\n field.onChange(e.target.value);\n }}\n onBlur={(e) => {\n const value = parseFloat(e.target.value);\n field.onChange(value);\n handleNumberChange(field.name, value);\n }}\n className=\"w-full p-2 border rounded\"\n />\n </FormControl>\n <ErrorMessage error={errors.jobSizeThickness} />\n </FormItem>\n )}\n />\n </div>\n </div>\n\n <div className=\"grid grid-cols-1 md:grid-cols-2 gap-4\">\n <div className=\"flex flex-col gap-2\">\n <FormField\n control={jobSetupModelForm.control}\n name=\"zZeroPosition\"\n render={({ field }) => (\n <FormItem>\n <FormLabel>Z Zero Position</FormLabel>\n <FormControl>\n <Select\n options={Object.values(IZZeroPosition).map(\n (option) => ({\n label: option,\n value: option,\n })\n )}\n onChange={(option) => {\n if (option?.value) {\n handleSelectChange(field.name, option.value);\n }\n }}\n isSearchable\n name={field.name}\n value={{\n label: Object.values(IZZeroPosition).filter(\n (position) =>\n position === formData.zZeroPosition\n ) as unknown as string,\n value: Object.values(IZZeroPosition).filter(\n (position) =>\n position === formData.zZeroPosition\n ) as unknown as string,\n }}\n />\n </FormControl>\n <ErrorMessage error={errors.zZeroPosition} />\n </FormItem>\n )}\n />\n </div>\n\n <div className=\"flex flex-col gap-2\">\n <FormField\n control={jobSetupModelForm.control}\n name=\"xyDatumPosition\"\n render={({ field }) => (\n <FormItem>\n <FormLabel>XY Datum Position</FormLabel>\n <FormControl>\n <Select\n options={Object.values(IXYDatumPosition).map(\n (option) => ({\n label: option,\n value: option,\n })\n )}\n onChange={(option) => {\n if (option?.value) {\n handleSelectChange(field.name, option.value);\n }\n }}\n isSearchable\n name={field.name}\n value={{\n label: Object.values(IXYDatumPosition).filter(\n (position) =>\n position === formData.xyDatumPosition\n ) as unknown as string,\n value: Object.values(IXYDatumPosition).filter(\n (position) =>\n position === formData.xyDatumPosition\n ) as unknown as string,\n }}\n />\n </FormControl>\n <ErrorMessage error={errors.xyDatumPosition} />\n </FormItem>\n )}\n />\n </div>\n </div>\n\n <div className=\"flex flex-col gap-2\">\n <FormField\n control={jobSetupModelForm.control}\n name=\"laserOrEndmill\"\n render={({ field }) => (\n <FormItem>\n <FormLabel>Laser or Endmill</FormLabel>\n <FormControl>\n <Select\n options={Object.values(ILaserOrEndmill).map(\n (option) => ({\n label: option,\n value: option,\n })\n )}\n onChange={(option) => {\n if (option?.value) {\n handleSelectChange(field.name, option.value);\n }\n }}\n isSearchable\n name={field.name}\n value={{\n label: Object.values(ILaserOrEndmill).filter(\n (option) => option === formData.laserOrEndmill\n ) as unknown as string,\n value: Object.values(ILaserOrEndmill).filter(\n (option) => option === formData.laserOrEndmill\n ) as unknown as string,\n }}\n />\n </FormControl>\n <ErrorMessage error={errors.laserOrEndmill} />\n </FormItem>\n )}\n />\n </div>\n\n <div className=\"grid grid-cols-1 md:grid-cols-2 gap-4\">\n <div className=\"flex flex-col gap-2\">\n <FormField\n control={jobSetupModelForm.control}\n name=\"toolSetter\"\n render={({ field }) => (\n <FormItem>\n <FormLabel>Tool Setter</FormLabel>\n <FormControl>\n <RadioGroup\n onValueChange={(value) =>\n handleSelectChange(field.name, value)\n }\n defaultValue={field.value || formData.toolSetter}\n className=\"flex gap-4\"\n >\n {Object.values(IToolSetter).map((option) => (\n <button\n type=\"button\"\n key={option}\n className=\"flex items-center space-x-2 w-full border border-[#D6D6D6] h-[40px] p-2 rounded-sm cursor-pointer\"\n onClick={() => field.onChange(option)}\n >\n <RadioGroupItem value={option} id={option} />\n <label\n htmlFor={option}\n className=\"text-sm font-medium leading-none peer-disabled:cursor-not-allowed peer-disabled:opacity-70 flex-1\"\n >\n {option}\n </label>\n </button>\n ))}\n </RadioGroup>\n </FormControl>\n <ErrorMessage error={errors.toolSetter} />\n </FormItem>\n )}\n />\n </div>\n\n <div className=\"flex flex-col gap-2\">\n <FormField\n control={jobSetupModelForm.control}\n name=\"probeForZHeightCommand\"\n render={({ field }) => (\n <FormItem>\n <FormLabel>Probe for Z Height Command</FormLabel>\n <FormControl>\n <RadioGroup\n onValueChange={(value) =>\n handleSelectChange(field.name, value)\n }\n defaultValue={\n field.value || formData.probeForZHeightCommand\n }\n className=\"flex gap-4\"\n >\n {Object.values(IProbeForZHeightCommand).map(\n (option) => (\n <button\n type=\"button\"\n key={option}\n className=\"flex items-center space-x-2 w-full border border-[#D6D6D6] h-[40px] p-2 rounded-sm cursor-pointer\"\n onClick={() => field.onChange(option)}\n >\n <RadioGroupItem value={option} id={option} />\n <label\n htmlFor={option}\n className=\"text-sm font-medium leading-none peer-disabled:cursor-not-allowed peer-disabled:opacity-70 flex-1\"\n >\n {option}\n </label>\n </button>\n )\n )}\n </RadioGroup>\n </FormControl>\n <ErrorMessage error={errors.probeForZHeightCommand} />\n </FormItem>\n )}\n />\n </div>\n </div>\n\n <div className=\"flex flex-col gap-2\">\n <FormField\n control={jobSetupModelForm.control}\n name=\"spindleSpeed\"\n render={({ field }) => (\n <FormItem>\n <FormLabel>Spindle Speed (RPM)</FormLabel>\n <FormControl>\n <input\n type=\"number\"\n min=\"6000\"\n max=\"24000\"\n value={field.value}\n onChange={(e) => {\n const value = parseInt(e.target.value, 10);\n field.onChange(value);\n handleNumberChange(field.name, value);\n }}\n className=\"w-full p-2 border rounded\"\n />\n </FormControl>\n <ErrorMessage error={errors.spindleSpeed} />\n </FormItem>\n )}\n />\n </div>\n </div>\n </form>\n </Form>\n </div>\n </div>\n );\n}\n\nexport default JobSetupDetails;\n","import { Box3, Vector3 } from 'three';\n\ninterface ParsedGCode {\n rapidMovePoints: Vector3[];\n linearMovePoints: Vector3[];\n}\n\nenum GCodeUnit {\n inches = 'inches',\n mm = 'mm',\n}\n\nexport function parseGCode(gcode: string): ParsedGCode {\n const lines = gcode.split('\\n');\n const rapidMovePoints: Vector3[] = [];\n const linearMovePoints: Vector3[] = [];\n let x = 0;\n let y = 0;\n let z = 0;\n\n let currentPoints = linearMovePoints; // Default to G1 moves\n\n lines.forEach((line) => {\n if (line.startsWith('G0')) {\n currentPoints = rapidMovePoints;\n } else if (line.startsWith('G1')) {\n currentPoints = linearMovePoints;\n }\n\n const matchX = line.match(/X(-?\\d+(\\.\\d+)?)/);\n const matchY = line.match(/Y(-?\\d+(\\.\\d+)?)/);\n const matchZ = line.match(/Z(-?\\d+(\\.\\d+)?)/);\n\n if (matchX) x = parseFloat(matchX[1]);\n if (matchY) y = parseFloat(matchY[1]);\n if (matchZ) z = parseFloat(matchZ[1]);\n\n currentPoints.push(new Vector3(x, y, z));\n });\n\n return { rapidMovePoints, linearMovePoints };\n}\n\nexport function getGcodeUnit(gcode: string): GCodeUnit {\n if (gcode.includes('G20')) {\n return GCodeUnit.inches;\n }\n if (gcode.includes('G21')) {\n return GCodeUnit.mm;\n }\n return GCodeUnit.mm;\n}\n\nexport function calculateBoundingBox(points: Vector3[]): Box3 | null {\n if (points.length === 0) {\n return null;\n }\n\n const box = new Box3().setFromPoints(points);\n return box;\n}\n\nexport function centerPoints(\n points: Vector3[],\n boundingBox: Box3 | null\n): Vector3[] {\n if (!boundingBox) return points;\n\n const center = new Vector3();\n boundingBox.getCenter(center);\n\n return points.map((point) => point.clone().sub(center));\n}\n","import { Line, Text } from '@react-three/drei';\nimport { Box3, Vector3 } from 'three';\n\ninterface BoundingBoxProps {\n box: Box3 | null; // Box3 from THREE, or null if no box is present\n boundingBoxColor: string;\n dTextColor: string;\n unit: string;\n}\n\nfunction BoundingBox({\n box,\n boundingBoxColor,\n dTextColor,\n unit,\n}: BoundingBoxProps) {\n if (!box) return null;\n\n const width = box.max.x - box.min.x;\n const depth = box.max.y - box.min.y;\n const height = box.max.z - box.min.z;\n\n // Increase text size for better visibility\n const textSize = Math.max(width, depth, height) * 0.05; // Adjusted text size relative to dimensions\n\n // Get center of the bounding box for proper centering\n const boxCenter = new Vector3();\n box.getCenter(boxCenter);\n\n // Adjust bounding box points to be centered relative to the origin\n const boxPoints: Vector3[] = [\n new Vector3(box.min.x, box.min.y, box.min.z).sub(boxCenter),\n new Vector3(box.max.x, box.min.y, box.min.z).sub(boxCenter),\n new Vector3(box.max.x, box.max.y, box.min.z).sub(boxCenter),\n new Vector3(box.min.x, box.max.y, box.min.z).sub(boxCenter),\n new Vector3(box.min.x, box.min.y, box.min.z).sub(boxCenter),\n new Vector3(box.min.x, box.min.y, box.max.z).sub(boxCenter),\n new Vector3(box.max.x, box.min.y, box.max.z).sub(boxCenter),\n new Vector3(box.max.x, box.max.y, box.max.z).sub(boxCenter),\n new Vector3(box.min.x, box.max.y, box.max.z).sub(boxCenter),\n new Vector3(box.min.x, box.min.y, box.max.z).sub(boxCenter),\n new Vector3(box.min.x, box.max.y, box.max.z).sub(boxCenter),\n new Vector3(box.min.x, box.max.y, box.min.z).sub(boxCenter),\n new Vector3(box.max.x, box.max.y, box.min.z).sub(boxCenter),\n new Vector3(box.max.x, box.max.y, box.max.z).sub(boxCenter),\n new Vector3(box.max.x, box.min.y, box.max.z).sub(boxCenter),\n new Vector3(box.max.x, box.min.y, box.min.z).sub(boxCenter),\n ];\n\n // Offset for placing the text labels\n const labelOffset = 0.2; // Increase offset for improved visibility\n\n return (\n <>\n {/* Draw the bounding box */}\n <Line\n points={boxPoints.map((p) => [p.x, p.y, p.z])}\n color={boundingBoxColor}\n lineWidth={1}\n />\n\n {/* Width label - place it above the bounding box line */}\n <Text\n position={[\n (box.min.x + box.max.x) / 2 - boxCenter.x,\n box.min.y - boxCenter.y - labelOffset,\n box.max.z - boxCenter.z + labelOffset,\n ]}\n fontSize={textSize}\n color={dTextColor}\n >\n {`${width.toFixed(2)} ${unit}`}\n </Text>\n\n {/* Depth label - place it to the side and above the bounding box */}\n <Text\n position={[\n box.max.x - boxCenter.x + labelOffset,\n (box.min.y + box.max.y) / 2 - boxCenter.y,\n box.max.z - boxCenter.z + labelOffset,\n ]}\n fontSize={textSize}\n color={dTextColor}\n rotation={[0, 0, Math.PI / 2]}\n >\n {`${depth.toFixed(2)} ${unit}`}\n </Text>\n\n {/* Height label - place it on the top edge */}\n <Text\n position={[\n box.max.x - boxCenter.x,\n box.max.y - boxCenter.y + labelOffset,\n (box.min.z + box.max.z) / 2 - boxCenter.z,\n ]}\n fontSize={textSize}\n color={dTextColor}\n rotation={[Math.PI / 2, 0, 0]}\n >\n {`${height.toFixed(2)} ${unit}`}\n </Text>\n </>\n );\n}\n\nexport default BoundingBox;\n","import { Line } from '@react-three/drei';\nimport { Vector3 } from 'three';\nimport BoundingBox from './BoundingBox.tsx';\nimport {\n calculateBoundingBox,\n centerPoints,\n getGcodeUnit,\n parseGCode,\n} from './utils.ts';\n\ninterface GCodeRendererProps {\n gcode: string;\n modelColor: string;\n boundingBoxColor: string;\n dTextColor: string;\n}\n\nfunction GCodeRenderer({\n gcode,\n modelColor,\n boundingBoxColor,\n dTextColor,\n}: GCodeRendererProps) {\n const { rapidMovePoints, linearMovePoints } = parseGCode(gcode);\n\n // Ensure these are of type Vector3[]\n const allPoints: Vector3[] = [...rapidMovePoints, ...linearMovePoints];\n\n // Bounding box calculations\n const boundingBox = calculateBoundingBox(allPoints);\n\n // Center the points based on the bounding box\n const centeredRapidMovePoints = centerPoints(rapidMovePoints, boundingBox);\n const centeredLinearMovePoints = centerPoints(linearMovePoints, boundingBox);\n\n // Recalculate bounding box for centered points\n const centeredBoundingBox = calculateBoundingBox([\n ...centeredRapidMovePoints,\n ...centeredLinearMovePoints,\n ]);\n\n const gcodeMeasuringUnit = getGcodeUnit(gcode);\n\n return (\n <>\n {centeredRapidMovePoints.length > 1 && (\n <Line\n points={centeredRapidMovePoints.map((p) => [p.x, p.y, p.z])} // Convert to [x, y, z] array format\n color=\"red\"\n lineWidth={1}\n opacity={0.5}\n transparent\n />\n )}\n {centeredLinearMovePoints.length > 1 && (\n <Line\n points={centeredLinearMovePoints.map((p) => [p.x, p.y, p.z])} // Convert to [x, y, z] array format\n color={modelColor}\n lineWidth={2}\n opacity={0.6}\n transparent\n />\n )}\n {centeredBoundingBox && (\n <BoundingBox\n box={centeredBoundingBox}\n boundingBoxColor={boundingBoxColor}\n dTextColor={dTextColor}\n unit={gcodeMeasuringUnit}\n />\n )}\n </>\n );\n}\n\nexport default GCodeRenderer;\n","import { useEffect } from 'react';\nimport { useThree } from '@react-three/fiber';\nimport { Box3, Vector3 } from 'three';\n\ninterface CenteredCameraProps {\n boundingBox: Box3;\n}\n\nfunction CenteredCamera({ boundingBox }: CenteredCameraProps) {\n const { camera } = useThree();\n\n useEffect(() => {\n if (boundingBox) {\n const size = new Vector3();\n boundingBox.getSize(size);\n\n const maxDimension = Math.max(size.x, size.y, size.z);\n const cameraDistance = maxDimension * 2;\n\n const x = cameraDistance * Math.cos(4.72);\n const y = cameraDistance * Math.sin(4.72);\n const z = cameraDistance / 2;\n\n camera.position.set(x, y, z);\n camera.lookAt(0, 0, 0);\n camera.up.set(0, 0, 1);\n camera.updateProjectionMatrix();\n }\n }, [camera, boundingBox]);\n\n return null;\n}\n\nexport default CenteredCamera;\n","import { useState, useEffect } from 'react';\nimport { Canvas } from '@react-three/fiber';\nimport { OrbitControls, Grid } from '@react-three/drei';\nimport { calculateBoundingBox, parseGCode } from './utils.ts';\nimport GCodeRenderer from './Renderer.tsx';\nimport CenteredCamera from './CenteredCamera.tsx';\nimport { getPublicFileFromS3 } from '@/lib/s3.ts';\n\ninterface ModelViewerProps {\n modelURL: string;\n enableGrid?: boolean;\n backgroundColor?: string;\n gridColor?: string;\n modelColor?: string;\n boundingBoxColor?: string;\n dTextColor?: string;\n}\n\nfunction Viewer({\n modelURL,\n enableGrid = true,\n backgroundColor = 'lightgray',\n gridColor = '#696969',\n modelColor = 'green',\n boundingBoxColor = 'gray',\n dTextColor = 'black',\n}: ModelViewerProps) {\n const [gcode, setGcode] = useState('');\n const [error, setError] = useState('');\n const [loading, setLoading] = useState(false);\n\n useEffect(() => {\n const fetchGCode = async () => {\n try {\n setLoading(true);\n const response = await getPublicFileFromS3(modelURL);\n if (response.ok) {\n const gcodeText = await response.text();\n setGcode(gcodeText);\n } else {\n throw new Error('Failed to Load the model.');\n }\n setLoading(false);\n } catch {\n setLoading(false);\n setError('Failed to Load the model.');\n }\n };\n\n fetchGCode();\n }, [modelURL]);\n\n const { rapidMovePoints, linearMovePoints } = gcode\n ? parseGCode(gcode)\n : { rapidMovePoints: [], linearMovePoints: [] };\n\n const allPoints = [...rapidMovePoints, ...linearMovePoints];\n const boundingBox = calculateBoundingBox(allPoints);\n\n if (loading) {\n return <h1>Loading...</h1>;\n }\n\n if (error) {\n return <h1>{error}</h1>;\n }\n\n return (\n <Canvas\n camera={{ fov: 45 }}\n style={{ background: backgroundColor, borderRadius: '20px' }}\n >\n {boundingBox && <CenteredCamera boundingBox={boundingBox} />}\n\n <OrbitControls maxPolarAngle={Math.PI} />\n\n {enableGrid && (\n <Grid\n args={[150, 150]}\n position={[0, 0, 0]}\n rotation={[Math.PI / 2, 0, 0]}\n cellSize={1}\n sectionColor={gridColor}\n infiniteGrid\n />\n )}\n\n {gcode && (\n <GCodeRenderer\n gcode={gcode}\n modelColor={modelColor}\n boundingBoxColor={boundingBoxColor}\n dTextColor={dTextColor}\n />\n )}\n </Canvas>\n );\n}\n\nViewer.defaultProps = {\n backgroundColor: 'lightgray',\n gridColor: '#696969',\n modelColor: 'green',\n boundingBoxColor: 'gray',\n enableGrid: true,\n dTextColor: 'black',\n};\n\nexport default Viewer;\n","import CarouselHeader from '@/components/FullPageCarousel/CarouselHeader';\nimport PostStatus from './PostStatus';\n\nfunction Loader({ isLoading }: { isLoading: boolean }) {\n return (\n <div className=\"min-h-screen flex items-center justify-center bg-background flex-col pb-[100px]\">\n <CarouselHeader disabled={isLoading} />\n <div className=\"flex-grow flex items-center justify-center w-full\">\n <div className=\"w-full max-w-2xl space-y-8 p-3\">\n <div className=\"flex justify-center items-center space-x-2\">\n <PostStatus isLoading />\n </div>\n </div>\n </div>\n </div>\n );\n}\n\nexport default Loader;\n","import { z } from 'zod';\nimport { Dispatch, SetStateAction, useEffect, useState } from 'react';\nimport { Trash2 } from 'lucide-react';\nimport Select from 'react-select';\nimport SectionHeader from '@/components/FullPageCarousel/SectionHeader';\nimport {\n FormField,\n FormLabel,\n FormControl,\n FormItem,\n Form,\n} from '@/components/ui/form';\nimport {\n IBitType,\n IBitUsedUnit,\n IToolData,\n IPostUploadData,\n IModel,\n} from '@/redux/post/post.d';\nimport ErrorMessage from '@/components/ErrorMessage';\nimport { RadioGroup, RadioGroupItem } from '@/components/ui/radio-group';\nimport { useModelToolMappingForm } from '@/redux/post/usePostForm';\nimport Viewer from '@/components/ModelViewer';\nimport { modelToolMappingSchema } from '@/redux/post/post.schema';\nimport {\n Table,\n TableBody,\n TableCell,\n TableHead,\n TableHeader,\n TableRow,\n} from '@/components/ui/table';\nimport { Button } from '@/components/ui/button';\nimport Loader from './Loader';\n\nfunction ModelToolMapping({\n formData,\n pageErrors,\n setFormData,\n}: {\n formData: IPostUploadData;\n pageErrors: { [key: string]: string };\n setFormData: Dispatch<SetStateAction<IPostUploadData>>;\n}) {\n const modelToolMappingForm = useModelToolMappingForm(formData);\n const [currentModel, setCurrentModel] = useState<IModel | null>(null);\n const {\n formState: { errors },\n } = modelToolMappingForm;\n\n const validateAndSaveToolData = async () => {\n try {\n const values = modelToolMappingForm.getValues();\n await modelToolMappingSchema.parseAsync(values);\n return true;\n } catch (error) {\n if (error instanceof z.ZodError) {\n const { fieldErrors } = error.flatten();\n Object.entries(fieldErrors).forEach(([field, messages]) => {\n modelToolMappingForm.setError(\n field as keyof typeof modelToolMappingSchema._type,\n {\n message: messages?.[0],\n }\n );\n });\n }\n return false;\n }\n };\n\n const addToolData = async () => {\n const isValid = await validateAndSaveToolData();\n if (!isValid) return;\n if (!currentModel) return;\n setFormData((prev) => {\n const newToolData: IToolData = {\n modelId: currentModel.id,\n toolUnit: modelToolMappingForm.getValues('toolUnit') as IBitUsedUnit,\n toolUsed: modelToolMappingForm.getValues('toolUsed') as number,\n toolType: modelToolMappingForm.getValues('toolType') as IBitType,\n _id: Date.now().toString(),\n };\n const updatedToolData = [...(prev.toolData || []), newToolData];\n\n return { ...prev, toolData: updatedToolData };\n });\n // Reset form after adding\n modelToolMappingForm.reset({\n toolUnit: IBitUsedUnit.INCHES,\n toolUsed: 0.015625,\n toolType: IBitType.UPCUT_ENDMILL,\n });\n };\n\n const deleteToolData = (toolId: string) => {\n if (formData.toolData) {\n const updatedToolData = formData.toolData.filter(\n (tool) => tool._id !== toolId\n );\n setFormData((prev) => {\n return { ...prev, toolData: updatedToolData };\n });\n }\n };\n\n const handleModelChange = async (option: { value: string } | null) => {\n if (!option) return;\n const filteredModel = formData.models.find(\n (model) => model.id === option.value\n );\n if (!filteredModel) return;\n setCurrentModel(filteredModel);\n modelToolMappingForm.reset({\n toolUnit: IBitUsedUnit.INCHES,\n toolUsed: 0.015625,\n toolType: IBitType.UPCUT_ENDMILL,\n });\n };\n\n useEffect(() => {\n if (!formData.models) return;\n if (!formData.models.length) return;\n if (currentModel) return;\n\n setCurrentModel(formData.models[0]);\n }, [formData, currentModel]);\n\n if (!currentModel) {\n return <Loader isLoading />;\n }\n\n return (\n <div className=\"space-y-6\">\n <SectionHeader\n title=\"Map your Tools to your CNC models\"\n description=\"Enter tools details for selected model\"\n />\n <div className=\"h-[260px] border-dashed border-2 border-input rounded-lg text-center\">\n <Viewer modelURL={currentModel.modelURL} backgroundColor=\"#FFFFFF\" />\n </div>\n <Form {...modelToolMappingForm}>\n <form onSubmit={(e) => e.preventDefault()}>\n <div className=\"flex flex-col py-2 gap-4 flex-wrap\">\n <div className=\"flex flex-col gap-2\">\n <FormField\n name=\"selectedModel\"\n render={({ field }) => (\n <FormItem>\n <FormLabel>\n Select your model and fill tool details\n </FormLabel>\n <FormControl>\n <Select\n options={formData.models.map((model) => {\n return {\n label: model.modelFile ? model.modelFile.name : '',\n value: model.id,\n };\n })}\n onChange={handleModelChange}\n value={\n currentModel?.modelFile\n ? {\n label: currentModel.modelFile.name,\n value: currentModel.id,\n }\n : null\n }\n isSearchable\n name={field.name}\n />\n </FormControl>\n <ErrorMessage error={pageErrors.selectedModel || ''} />\n </FormItem>\n )}\n />\n </div>\n\n <div className=\"grid grid-cols-1 md:grid-cols-2 gap-4\">\n <div className=\"flex flex-col gap-2\">\n <FormField\n control={modelToolMappingForm.control}\n name=\"toolUnit\"\n render={({ field }) => (\n <FormItem>\n <FormLabel>Tool Used Units</FormLabel>\n <FormControl>\n <RadioGroup\n onValueChange={field.onChange}\n value={field.value}\n className=\"flex gap-4\"\n >\n {Object.values(IBitUsedUnit).map((option) => (\n <div\n key={option}\n className=\"flex items-center space-x-2 w-full border border-[#D6D6D6] h-[40px] p-2 rounded-sm cursor-pointer\"\n >\n <RadioGroupItem\n value={option}\n id={`${option}-bit-used-unit`}\n />\n <label\n htmlFor={`${option}-bit-used-unit`}\n className=\"text-sm font-medium leading-none peer-disabled:cursor-not-allowed peer-disabled:opacity-70 flex-1\"\n >\n {option}\n </label>\n </div>\n ))}\n </RadioGroup>\n </FormControl>\n <ErrorMessage error={errors.toolUnit?.message || ''} />\n </FormItem>\n )}\n />\n </div>\n <div className=\"flex flex-col gap-2\">\n <FormField\n control={modelToolMappingForm.control}\n name=\"toolUsed\"\n render={({ field }) => (\n <FormItem>\n <FormLabel>\n Tool Used in{' '}\n {modelToolMappingForm.getValues('toolUnit')}\n </FormLabel>\n <FormControl>\n <input\n type=\"number\"\n {...field}\n onChange={(e) => field.onChange(e.target.value)}\n onBlur={(e) =>\n field.onChange(parseFloat(e.target.value))\n }\n step=\"any\"\n className=\"w-full p-2 border rounded\"\n />\n </FormControl>\n <ErrorMessage error={errors.toolUsed?.message || ''} />\n </FormItem>\n )}\n />\n </div>\n </div>\n\n <div className=\"flex flex-col gap-2\">\n <FormField\n control={modelToolMappingForm.control}\n name=\"toolType\"\n render={({ field }) => (\n <FormItem>\n <FormLabel>Tool Type</FormLabel>\n <FormControl>\n <Select\n options={Object.values(IBitType).map((option) => ({\n label: option,\n value: option,\n }))}\n onChange={(option) => {\n if (option) {\n field.onChange(option.value);\n }\n }}\n value={{\n label: field.value,\n value: field.value,\n }}\n isSearchable\n name={field.name}\n />\n </FormControl>\n <ErrorMessage error={errors.toolType?.message || ''} />\n </FormItem>\n )}\n />\n </div>\n\n <Button\n type=\"button\"\n onClick={addToolData}\n className=\"w-full bg-primary text-white\"\n >\n Add Tool\n </Button>\n </div>\n </form>\n </Form>\n\n <div>\n <Table>\n <TableHeader>\n <TableRow>\n <TableHead>#</TableHead>\n <TableHead>Size</TableHead>\n <TableHead>Type</TableHead>\n <TableHead className=\"text-right\">Action</TableHead>\n </TableRow>\n </TableHeader>\n <TableBody>\n {Array.isArray(formData.toolData) &&\n (formData.toolData as IToolData[])\n .filter((tool) => tool.modelId === currentModel?.id)\n .map((tool, index) => (\n <TableRow key={tool._id}>\n <TableCell>{index + 1}</TableCell>\n <TableCell>\n {tool.toolUsed} ({tool.toolUnit})\n </TableCell>\n <TableCell>{tool.toolType}</TableCell>\n <TableCell className=\"text-right\">\n <Button\n variant=\"ghost\"\n size=\"sm\"\n onClick={() => deleteToolData(tool._id || '')}\n className=\"text-destructive hover:text-destructive/90\"\n >\n <Trash2 className=\"h-4 w-4\" />\n </Button>\n </TableCell>\n </TableRow>\n ))}\n </TableBody>\n </Table>\n </div>\n </div>\n );\n}\n\nexport default ModelToolMapping;\n","import { Fragment, useCallback, useEffect, useState } from 'react';\nimport { toast } from 'sonner';\nimport { Link, useLocation, useNavigate, useParams } from 'react-router-dom';\nimport { QueryStatus } from '@reduxjs/toolkit/query';\nimport { Button } from '@/components/ui/button';\nimport { cn, objectToFormData, validateStep } from '@/lib/utils';\nimport ModelUpload from './Carousel/ModelUpload';\nimport CarouselHeader from '@/components/FullPageCarousel/CarouselHeader';\nimport MediaUpload from './Carousel/MediaUpload';\nimport PostStatus from './Carousel/PostStatus';\nimport BasicDetails from './Carousel/BasicDetails';\nimport {\n useCreateDraftPostMutation,\n useLazyGetPostByIdQuery,\n useUpdatePostAttachmentMutation,\n useUpdatePostDataMutation,\n} from '@/redux/post/post.api.slice';\nimport {\n jobSetupModelSchema,\n mediaUploadSchema,\n modelToolMappingPageSchema,\n modelUploadSchema,\n onefinityModelSchema,\n postUploadSchema,\n} from '@/redux/post/post.schema';\nimport {\n GroupedEnum,\n IJobType,\n ILaserOrEndmill,\n IMaterialUsed,\n IPostDraft,\n IPostUploadData,\n IProbeForZHeightCommand,\n ISoftwareUsed,\n IToolSetter,\n IUnits,\n IXYDatumPosition,\n IZZeroPosition,\n IBuiltWith,\n} from '@/redux/post/post.d';\nimport OnefinityDetails from './Carousel/OnefinityDetails';\nimport JobSetupDetails from './Carousel/JobSetupDetails';\nimport {\n getGroupedOptionsFlat,\n convertToPostDetailAttachment,\n convertToPostDetailData,\n convertToPostUploadData,\n} from '@/redux/post/post.utils';\nimport ModelToolMapping from './Carousel/ModelToolMapping';\nimport useSearchParamActions from '@/customHooks/useSearchParamActions';\nimport Loader from './Carousel/Loader';\n\nexport default function PostUpload() {\n const [currentStep, setCurrentStep] = useState(1);\n const [isLoading, setIsLoading] = useState(false);\n const [createDraftPost, { isLoading: isCreateDraftPostLoading }] =\n useCreateDraftPostMutation();\n const [\n updatePostData,\n { isLoading: isUpdatePostDataLoading, status: updatePostDataStatus },\n ] = useUpdatePostDataMutation();\n const [\n updatePostAttachment,\n {\n isLoading: isUpdatePostAttachmentLoading,\n status: updatePostAttachmentStatus,\n },\n ] = useUpdatePostAttachmentMutation();\n const [getPostByIdQuery, { isLoading: isGetPostByIdLoading }] =\n useLazyGetPostByIdQuery();\n\n const location = useLocation();\n const navigate = useNavigate();\n const { postId } = useParams();\n\n const { getSearchParam, appendSearchParam } = useSearchParamActions();\n const [formData, setFormData] = useState<IPostUploadData>({\n models: [],\n mediaFiles: [],\n thumbnail: null,\n title: '',\n description: '',\n category: '',\n tags: [],\n onefinityModel: '',\n onefinityController: '',\n onefinitySize: '',\n softwareUsed: Object.values(ISoftwareUsed)[0],\n materialUsed: Object.values(\n getGroupedOptionsFlat(IMaterialUsed as unknown as GroupedEnum)\n )[0] as any,\n jobType: Object.values(IJobType)[0],\n units: Object.values(IUnits)[0],\n jobSizeHeight: 0.1,\n jobSizeThickness: 0.1,\n jobSizeWidth: 0.1,\n zZeroPosition: Object.values(IZZeroPosition)[0],\n xyDatumPosition: Object.values(IXYDatumPosition)[0],\n laserOrEndmill: Object.values(ILaserOrEndmill)[0],\n toolData: [],\n toolSetter: Object.values(IToolSetter)[0],\n probeForZHeightCommand: Object.values(IProbeForZHeightCommand)[0],\n spindleSpeed: 6000,\n youtubeAttachments: [],\n builtWith: '',\n });\n\n const [errors, setErrors] = useState<{ [key: string]: string }>({});\n\n async function handleCreateDraftPost(data: Partial<IPostDraft>) {\n try {\n const postFormData = objectToFormData(data);\n const createDraftPostRes = await createDraftPost(postFormData).unwrap();\n navigate(`/project/edit/${createDraftPostRes._id}?page=2`);\n toast.success('Model Post Upload successful');\n } catch (error: any) {\n toast.error('Project creation failed', {\n description: error?.data?.errorMessage || 'Something went wrong',\n });\n }\n }\n\n const pages = [\n {\n page: (\n <BasicDetails\n formData={formData}\n errors={errors}\n setFormData={setFormData}\n key=\"basic-details\"\n />\n ),\n schema: postUploadSchema,\n condition: true,\n },\n {\n page: (\n <ModelUpload\n formData={formData}\n errors={errors}\n setFormData={setFormData}\n key=\"model-upload\"\n />\n ),\n schema: modelUploadSchema,\n condition: true,\n },\n {\n page: (\n <ModelToolMapping\n formData={formData}\n pageErrors={errors}\n setFormData={setFormData}\n key=\"onefinity-details\"\n />\n ),\n schema: modelToolMappingPageSchema,\n condition: true,\n },\n {\n page: (\n <MediaUpload\n formData={formData}\n errors={errors}\n setFormData={setFormData}\n key=\"media-upload\"\n />\n ),\n schema: mediaUploadSchema,\n condition: true,\n },\n {\n page: (\n <OnefinityDetails\n formData={formData}\n errors={errors}\n setFormData={setFormData}\n key=\"onefinity-details\"\n />\n ),\n schema: onefinityModelSchema,\n condition: formData.builtWith === IBuiltWith.ONEFINITY,\n },\n\n {\n page: (\n <JobSetupDetails\n formData={formData}\n errors={errors}\n setFormData={setFormData}\n key=\"job-setup-details\"\n />\n ),\n schema: jobSetupModelSchema,\n condition: true,\n },\n {\n page: (\n <PostStatus key=\"post-status\" isLoading={isCreateDraftPostLoading} />\n ),\n },\n ];\n\n const handleNext = async () => {\n const nextPage = pages[currentStep];\n const validationResult = await validateStep(\n currentStep,\n pages,\n formData,\n setErrors\n );\n if (validationResult.success) {\n if (location.pathname === '/project/create') {\n await handleCreateDraftPost({\n title: formData.title,\n description: formData.description,\n category: formData.category,\n tags: formData.tags,\n builtWith: formData.builtWith,\n thumbnail: formData.thumbnail,\n });\n } else if (postId) {\n await updatePostData({\n postId,\n data: {\n ...convertToPostDetailData(formData),\n currentPage: currentStep + 1,\n },\n });\n\n await updatePostAttachment({\n postId,\n currentPage: currentStep + 1,\n data: objectToFormData(convertToPostDetailAttachment(formData)),\n });\n }\n setErrors({});\n if (nextPage.condition) {\n const pageStep = Math.min(currentStep + 1, pages.length);\n setCurrentStep(pageStep);\n appendSearchParam('page', String(pageStep), true);\n } else {\n const pageStep = Math.min(currentStep + 2, pages.length);\n setCurrentStep(pageStep);\n appendSearchParam('page', String(pageStep), true);\n }\n } else {\n toast.error('Please fix the errors before continuing.');\n }\n };\n\n const handleBack = () => {\n const previousPage = pages[currentStep - 2];\n if (previousPage.condition) {\n const step = Math.max(currentStep - 1, 1);\n setCurrentStep(step);\n appendSearchParam('page', String(step), true);\n } else {\n const step = Math.max(currentStep - 2, 1);\n setCurrentStep(step);\n appendSearchParam('page', String(step), true);\n }\n };\n\n useEffect(() => {\n const pageStep = getSearchParam('page');\n if (!pageStep) return;\n setCurrentStep(parseInt(pageStep, 10));\n }, [getSearchParam]);\n\n const updateFormData = useCallback(async () => {\n if (!postId) return;\n\n setIsLoading(true);\n const { data } = await getPostByIdQuery(postId);\n const currentPage = getSearchParam('page');\n if (!currentPage) return;\n if (!data) return;\n\n const postFormData = await convertToPostUploadData(data);\n setFormData((prev) => ({\n ...prev,\n ...postFormData,\n }));\n setIsLoading(false);\n }, [getPostByIdQuery, getSearchParam, postId]);\n\n useEffect(() => {\n if (!postId) return;\n if (isUpdatePostDataLoading) return;\n if (isUpdatePostAttachmentLoading) return;\n if (updatePostDataStatus !== QueryStatus.fulfilled && currentStep !== 1)\n return;\n if (\n updatePostAttachmentStatus !== QueryStatus.fulfilled &&\n currentStep !== 1\n )\n return;\n\n updateFormData();\n }, [\n currentStep,\n postId,\n isUpdatePostDataLoading,\n isUpdatePostAttachmentLoading,\n updatePostDataStatus,\n updatePostAttachmentStatus,\n updateFormData,\n ]);\n\n if (\n isCreateDraftPostLoading ||\n isUpdatePostAttachmentLoading ||\n isUpdatePostDataLoading ||\n isGetPostByIdLoading ||\n isLoading\n ) {\n return <Loader isLoading />;\n }\n\n return (\n <div className=\"min-h-screen flex items-center justify-center bg-background flex-col pb-[100px]\">\n <CarouselHeader disabled={isCreateDraftPostLoading} />\n <div className=\"flex-grow flex items-center justify-center w-full\">\n <div className=\"w-full max-w-2xl space-y-8 p-3\">\n <div className=\"flex justify-center items-center space-x-2\">\n {pages.map((_, index) => (\n <Fragment key={index + 1}>\n <div\n className={cn(\n 'w-3 h-3 rounded-full',\n currentStep >= index + 1 ? 'bg-[#34C759]' : 'bg-muted'\n )}\n />\n {index + 1 < pages.length && (\n <div\n className={cn(\n 'w-16 h-0.5',\n currentStep > index + 1 ? 'bg-[#34C759]' : 'bg-muted'\n )}\n />\n )}\n </Fragment>\n ))}\n </div>\n {pages[currentStep - 1].page}\n <div className=\"flex justify-between mt-8 w-full gap-2\">\n {currentStep > 1 && currentStep < pages.length && (\n <Button\n variant=\"outline\"\n onClick={handleBack}\n className=\"w-full rounded-lg\"\n >\n Back\n </Button>\n )}\n {currentStep < pages.length ? (\n <Button className=\"w-full rounded-lg\" onClick={handleNext}>\n Next\n </Button>\n ) : (\n <Button\n className=\"w-full\"\n disabled={isCreateDraftPostLoading}\n asChild\n >\n <Link to={`/model/${postId}`}>Done</Link>\n </Button>\n )}\n </div>\n </div>\n </div>\n </div>\n );\n}\n","import { Link } from 'react-router-dom';\nimport { ArrowUp } from 'lucide-react';\nimport logo from '@/assets/filefinity-logo.png';\nimport { Button } from './ui/button';\n\nfunction Footer() {\n const scrollToTop = () => {\n window.scrollTo({ top: 0, behavior: 'smooth' });\n };\n\n return (\n <footer className=\"fixed bottom-0 w-full border-t border-gray-200 z-10\">\n <Button\n onClick={scrollToTop}\n className=\"fixed bottom-20 right-8 rounded-lg p-2\"\n size=\"icon\"\n aria-label=\"Scroll t o top\"\n >\n <ArrowUp className=\"h-6 w-6 text-white\" />\n </Button>\n\n <div className=\"bg-white text-gray-600 px-6 py-2\">\n <div className=\"max-w-6xl mx-auto\">\n <div className=\"flex flex-row justify-between items-center h-10 flex-wrap\">\n <Link\n to=\"/\"\n className=\"flex items-center space-x-2 hover:text-gray-900\"\n >\n <img src={logo} alt=\"logo\" className=\"w-auto h-7 rounded-lg \" />\n <span className=\"text-sm max-sm:hidden\">Filefinity</span>\n </Link>\n <div className=\"flex items-center space-x-2 text-sm\">\n <Button\n variant=\"link\"\n onClick={() => {\n window.open('mailto:support@filefinity.com');\n }}\n className=\"text-gray-600 font-normal border-0 p-0 text-sm\"\n >\n support@filefinity.com\n </Button>\n <span className=\"text-gray-300\">|</span>\n <Link to=\"/privacyPolicy\" className=\"hover:text-gray-900\">\n Privacy\n </Link>\n </div>\n <p className=\"text-xs text-gray-500 max-sm:hidden\">\n © {new Date().getFullYear()} - Copyright Filefinity\n </p>\n </div>\n </div>\n </div>\n </footer>\n );\n}\n\nexport default Footer;\n","export enum AuthProvider {\n Email = 'email',\n Google = 'google',\n}\n\nexport interface IUser {\n _id: string;\n username: string;\n firstname: string;\n lastname: string;\n email: string;\n cncBrand: string;\n cncModel: string;\n locatedAt: string;\n profilePicture: string;\n isVerified: boolean;\n isUserSignupComplete: boolean;\n authProvider: AuthProvider;\n isOnefinityOfficial: boolean;\n}\n\nexport interface LoginRequest {\n email: string;\n password: string;\n}\nexport interface AuthResponse {\n status: string;\n}\n\nexport interface IUserSignupData {\n profilePicture?: string | File;\n username: string;\n email: string;\n password: string;\n firstname: string;\n lastname: string;\n cncBrand: string;\n cncModel: string;\n locatedAt: string;\n}\n\nexport type UserState = {\n isAuthenticated: boolean;\n isVerified: boolean;\n isLoading: boolean;\n user: IUser | null;\n};\n\nexport type PasswordChangeRequest = {\n currentPassword: string;\n newPassword: string;\n};\n\nexport type ICompleteUserSignup = {\n username: string;\n firstname: string;\n lastname: string;\n cncBrand: string;\n cncModel: string;\n locatedAt: string;\n profilePicture?: string | File;\n};\n","import { useState, useCallback, useEffect } from 'react';\nimport { FileRejection, useDropzone } from 'react-dropzone';\n\nexport interface UseProfilePhotoProps {\n maxSize?: number;\n onChange?: (file: File | null) => void;\n value?: File | string | null;\n}\n\nexport function useProfilePhoto({\n maxSize = 5 * 1024 * 1024,\n onChange,\n value,\n}: UseProfilePhotoProps = {}) {\n const [imagePreview, setImagePreview] = useState<string | null>(null);\n const [error, setError] = useState<string | null>(null);\n\n useEffect(() => {\n if (value instanceof File) {\n const objectUrl = URL.createObjectURL(value);\n setImagePreview(objectUrl);\n return () => URL.revokeObjectURL(objectUrl);\n } else if (typeof value === 'string') {\n setImagePreview(value);\n } else {\n setImagePreview(null);\n }\n }, [value]);\n\n const onDrop = useCallback(\n (acceptedFiles: File[], fileRejections: FileRejection[]) => {\n if (fileRejections.length > 0) {\n const errorMessages = fileRejections\n .map((rejection) => rejection.errors.map((error) => error.message))\n .flat();\n setError(errorMessages.join('. '));\n return;\n }\n\n const file = acceptedFiles[0];\n if (file) {\n setError(null);\n onChange?.(file);\n }\n },\n [onChange]\n );\n\n const { getRootProps, getInputProps, isDragActive } = useDropzone({\n onDrop,\n accept: {\n 'image/*': ['.jpeg', '.jpg', '.png', '.gif'],\n },\n maxSize,\n multiple: false,\n noClick: true,\n });\n\n const removeImage = useCallback(() => {\n setError(null);\n onChange?.(null);\n }, [onChange]);\n\n return {\n imagePreview,\n error,\n getRootProps,\n getInputProps,\n isDragActive,\n removeImage,\n };\n}\n","import * as React from 'react';\nimport {\n useProfilePhoto,\n UseProfilePhotoProps,\n} from '@/components/ui/hooks/useProfilePhoto';\nimport { UserCircle, Upload } from 'lucide-react';\nimport { cn } from '@/lib/utils';\nimport { Avatar, AvatarImage, AvatarFallback } from '@/components/ui/avatar';\n// import { Button } from './button';\n// import { Alert, AlertDescription } from './alert';\n// import ErrorMessage from '../ErrorMessage';\n\nexport interface ProfilePhotoInputProps\n extends Omit<\n React.InputHTMLAttributes<HTMLInputElement>,\n 'value' | 'onChange'\n >,\n UseProfilePhotoProps {\n containerClassName?: string;\n}\n\nconst ProfilePhotoInput = React.forwardRef<\n HTMLInputElement,\n ProfilePhotoInputProps\n>(\n (\n { className, containerClassName, onChange, value, maxSize, ...props },\n forwardedRef\n ) => {\n const {\n imagePreview,\n getRootProps,\n getInputProps,\n isDragActive,\n // removeImage,\n // error,\n } = useProfilePhoto({ maxSize, onChange, value });\n const inputRef = React.useRef<HTMLInputElement>(null);\n\n React.useImperativeHandle(forwardedRef, () => inputRef.current!, []);\n\n const handleClick = () => {\n inputRef.current?.click();\n };\n\n return (\n <div className={cn('flex flex-col items-center', containerClassName)}>\n <div className=\"relative\">\n {' '}\n <div\n {...getRootProps()}\n className={cn(\n 'relative w-48 h-48 rounded-full border-2 border-dashed overflow-hidden',\n isDragActive ? 'border-primary' : 'border-input',\n 'hover:border-primary transition-colors group',\n className\n )}\n >\n <input\n {...getInputProps()}\n ref={inputRef}\n aria-label=\"Upload profile photo\"\n {...props}\n />\n <Avatar className=\"w-full h-full\">\n <AvatarImage\n src={imagePreview || undefined}\n alt=\"Profile preview\"\n className=\"object-cover\"\n />\n <AvatarFallback>\n <UserCircle className=\"w-24 h-24 text-muted-foreground\" />\n </AvatarFallback>\n </Avatar>\n <div\n className=\"absolute inset-0 flex items-center justify-center bg-black bg-opacity-50 opacity-0 group-hover:opacity-100 transition-opacity cursor-pointer\"\n onClick={handleClick}\n >\n <Upload className=\"w-12 h-12 text-white\" />\n </div>\n </div>\n {/* {imagePreview && (\n <Button\n onClick={() => removeImage()}\n variant=\"destructive\"\n size=\"icon\"\n type=\"button\"\n className=\"mt-4 absolute bottom-0 right-0 z-50\"\n aria-label=\"Remove profile photo\"\n >\n <XIcon className=\"w-5 h-5\" />\n </Button>\n )} */}\n </div>\n {/* {error && (\n <div className=\"mt-4 max-w-md\">\n <ErrorMessage error={error} />\n </div>\n )} */}\n {/* Uncomment to enable photo upload */}\n </div>\n );\n }\n);\nProfilePhotoInput.displayName = 'ProfilePhotoInput';\n\nexport { ProfilePhotoInput };\n","import {\n ChangeEvent,\n Dispatch,\n SetStateAction,\n useCallback,\n useEffect,\n useState,\n} from 'react';\nimport { CheckCircle2, Loader2, XCircle } from 'lucide-react';\nimport { Input } from '@/components/ui/input';\nimport {\n Form,\n FormControl,\n FormField,\n FormItem,\n FormLabel,\n} from '@/components/ui/form';\nimport SectionHeader from '@/components/FullPageCarousel/SectionHeader';\nimport ErrorMessage from '@/components/ErrorMessage';\nimport { useSignupBasicDetailsForm } from '@/redux/auth/useAuthForm';\nimport { IUserSignupDataWithConfirmPassword } from '@/pages/Signup';\nimport { AuthProvider, IUser } from '@/redux/auth/auth.d';\nimport { debounce } from '@/lib/utils';\nimport { useLazyCheckUsernameAvailabilityQuery } from '@/redux/auth/auth.api.slice';\nimport { ProfilePhotoInput } from '@/components/ui/profile-photo-input';\nimport { usernameSchema } from '@/redux/auth/auth.schema';\n\nfunction BasicDetails({\n user,\n formData,\n errors,\n setFormData,\n}: {\n user: IUser | null;\n formData: IUserSignupDataWithConfirmPassword;\n errors: { [key: string]: string };\n setFormData: Dispatch<SetStateAction<IUserSignupDataWithConfirmPassword>>;\n}) {\n const IS_USER_SINGUP_COMPLETE: boolean = Boolean(user?.isUserSignupComplete);\n const IS_SOCIAL_LOGIN: boolean = user?.authProvider !== AuthProvider.Email;\n\n const [isUsernameAvailable, setIsUsernameAvailable] = useState<string | null>(\n null\n );\n const [tempUsername, setTempUsername] = useState<string>('');\n\n const signupBaiscDetailsForm = useSignupBasicDetailsForm(\n !(Boolean(user) && IS_SOCIAL_LOGIN && !IS_USER_SINGUP_COMPLETE)\n );\n\n const [checkUsernameAvailabilityInDb] =\n useLazyCheckUsernameAvailabilityQuery();\n\n // eslint-disable-next-line react-hooks/exhaustive-deps\n const checkUsernameAvailability = useCallback(\n debounce(async (username: string) => {\n if (username.length < 4) {\n setIsUsernameAvailable('');\n return;\n }\n\n try {\n usernameSchema.parse(username);\n } catch (error: any) {\n setIsUsernameAvailable(error.errors[0].message);\n return;\n }\n\n setIsUsernameAvailable('checking');\n const { data: isAvailable } =\n await checkUsernameAvailabilityInDb(username);\n if (isAvailable) {\n setIsUsernameAvailable('available');\n setFormData((prev) => ({ ...prev, username }));\n } else {\n setIsUsernameAvailable('unavailable');\n }\n }, 300),\n []\n );\n\n const handleInputChange = (\n e: ChangeEvent<HTMLTextAreaElement | HTMLInputElement>\n ) => {\n const { name, value } = e.target;\n setFormData((prev) => ({ ...prev, [name]: value }));\n };\n\n const handleUsernameChange = (e: ChangeEvent<HTMLInputElement>) => {\n const { value } = e.target;\n setTempUsername(value);\n checkUsernameAvailability(value);\n };\n\n useEffect(() => {\n const formDataForReset = {\n ...formData,\n profilePicture:\n typeof formData.profilePicture === 'string'\n ? formData.profilePicture\n : undefined,\n };\n signupBaiscDetailsForm.reset(formDataForReset);\n }, [formData, signupBaiscDetailsForm]);\n\n const handlePhotoChange = (file: File | null) => {\n if (file) {\n setFormData((prev) => ({ ...prev, profilePicture: file }));\n } else {\n setFormData((prev) => ({ ...prev, profilePicture: '' }));\n }\n };\n\n return (\n <div className=\"space-y-6\">\n <SectionHeader\n title=\"Basic Details\"\n description=\"Fill in the registration data. It will take a couple of minutes.\"\n align=\"left\"\n />\n <div className=\"space-y-4\">\n <Form {...signupBaiscDetailsForm}>\n <form autoComplete=\"off\">\n <div className=\"flex flex-col py-2 gap-4\">\n <div className=\"flex flex-col gap-2\">\n <FormField\n control={signupBaiscDetailsForm.control}\n name=\"profilePicture\"\n render={({ field }) => (\n <FormItem>\n <FormLabel>Profile Photo</FormLabel>\n <FormControl>\n <ProfilePhotoInput\n {...field}\n value={formData.profilePicture}\n onChange={handlePhotoChange}\n className=\"h-40 w-40\"\n />\n </FormControl>\n <ErrorMessage error={errors.profilePicture} />\n </FormItem>\n )}\n />\n </div>\n <div className=\"flex flex-col gap-2\">\n <FormField\n control={signupBaiscDetailsForm.control}\n name=\"username\"\n render={({ field }) => (\n <FormItem>\n <FormLabel>Username</FormLabel>\n <FormControl>\n <div className=\"relative\">\n <Input\n placeholder=\"Enter your username\"\n {...field}\n value={tempUsername}\n onChange={handleUsernameChange}\n />\n {isUsernameAvailable && (\n <div className=\"absolute inset-y-0 right-0 flex items-center pr-3 pointer-events-none\">\n {isUsernameAvailable === 'checking' && (\n <Loader2 className=\"h-5 w-5 text-gray-400 animate-spin\" />\n )}\n {isUsernameAvailable === 'available' && (\n <CheckCircle2 className=\"h-5 w-5 text-green-500\" />\n )}\n {isUsernameAvailable !== 'available' &&\n isUsernameAvailable !== 'checking' && (\n <XCircle className=\"h-5 w-5 text-red-500\" />\n )}\n </div>\n )}\n </div>\n </FormControl>\n <ErrorMessage error={errors.username} />\n {isUsernameAvailable !== 'available' &&\n isUsernameAvailable !== 'checking' && (\n <p className=\"text-sm text-red-600\">\n {isUsernameAvailable}\n </p>\n )}\n </FormItem>\n )}\n />\n </div>\n <div className=\"flex items-center justify-between gap-4 w-full sm:flex-nowrap flex-wrap\">\n <div className=\"flex flex-col gap-2 w-full\">\n <FormField\n control={signupBaiscDetailsForm.control}\n name=\"firstname\"\n render={({ field }) => (\n <FormItem>\n <FormLabel>Firstname</FormLabel>\n <FormControl>\n <Input\n autoComplete=\"name\"\n placeholder=\"Enter your first name\"\n {...field}\n onBlur={handleInputChange}\n />\n </FormControl>\n <ErrorMessage error={errors.firstname} />\n </FormItem>\n )}\n />\n </div>\n <div className=\"flex flex-col gap-2 w-full\">\n <FormField\n control={signupBaiscDetailsForm.control}\n name=\"lastname\"\n render={({ field }) => (\n <FormItem>\n <FormLabel>Lastname</FormLabel>\n <FormControl>\n <Input\n autoComplete=\"family-name\"\n placeholder=\"Enter your last name\"\n {...field}\n onBlur={handleInputChange}\n />\n </FormControl>\n <ErrorMessage error={errors.lastname} />\n </FormItem>\n )}\n />\n </div>\n </div>\n <div className=\"flex flex-col gap-2\">\n <FormField\n control={signupBaiscDetailsForm.control}\n name=\"email\"\n render={({ field }) => (\n <FormItem>\n <FormLabel>Email</FormLabel>\n <FormControl>\n <Input\n type=\"email\"\n autoComplete=\"email\"\n placeholder=\"Enter your email\"\n {...field}\n disabled={\n Boolean(user) &&\n IS_SOCIAL_LOGIN &&\n !IS_USER_SINGUP_COMPLETE\n }\n onBlur={handleInputChange}\n />\n </FormControl>\n <ErrorMessage error={errors.email} />\n </FormItem>\n )}\n />\n </div>\n {!(\n Boolean(user) &&\n IS_SOCIAL_LOGIN &&\n !IS_USER_SINGUP_COMPLETE\n ) ? (\n <>\n <div className=\"flex flex-col gap-2\">\n <FormField\n control={signupBaiscDetailsForm.control}\n name=\"password\"\n render={({ field }) => (\n <FormItem>\n <FormLabel>Password</FormLabel>\n <FormControl>\n <Input\n autoComplete=\"new-password\"\n type=\"password\"\n placeholder=\"Enter your password\"\n {...field}\n onBlur={handleInputChange}\n />\n </FormControl>\n <ErrorMessage error={errors.password} />\n </FormItem>\n )}\n />\n </div>\n <div className=\"flex flex-col gap-2\">\n <FormField\n control={signupBaiscDetailsForm.control}\n name=\"confirmPassword\"\n render={({ field }) => (\n <FormItem>\n <FormLabel>Confirm Password</FormLabel>\n <FormControl>\n <Input\n autoComplete=\"new-password\"\n type=\"password\"\n placeholder=\"Enter your password\"\n {...field}\n onBlur={handleInputChange}\n />\n </FormControl>\n <ErrorMessage error={errors.confirmPassword} />\n </FormItem>\n )}\n />\n </div>\n </>\n ) : (\n // eslint-disable-next-line react/jsx-no-useless-fragment\n <></>\n )}\n </div>\n </form>\n </Form>\n </div>\n </div>\n );\n}\n\nexport default BasicDetails;\n","export const CNC_BRAND_OPTIONS = [\n 'Onefinity',\n 'Inventables Carbide 3D',\n 'Senci Labs',\n 'MillRight',\n 'Shark',\n 'Axiom',\n 'Avid',\n 'OpenBuilds',\n 'Fox Alien',\n 'SainSmart',\n 'Stepcraft',\n 'CNC4Newbie',\n];\n\nexport const CNC_MODEL_OPTIONS = [\n 'Elite Foreman',\n 'Elite Journeyman',\n 'Elite Woodworker',\n 'Pro Foreman',\n 'Pro Journeyman',\n 'Pro Woodworker',\n 'Original Woodworker',\n 'Original Machinist',\n];\n","import { Dispatch, SetStateAction } from 'react';\nimport CreatableSelect from 'react-select/creatable';\nimport {\n Form,\n FormControl,\n FormField,\n FormItem,\n FormLabel,\n} from '@/components/ui/form';\nimport SectionHeader from '@/components/FullPageCarousel/SectionHeader';\nimport ErrorMessage from '@/components/ErrorMessage';\nimport { useSignupOtherDetailsForm } from '@/redux/auth/useAuthForm';\nimport { getOptionsFromList } from '@/lib/utils';\nimport { CNC_BRAND_OPTIONS, CNC_MODEL_OPTIONS } from '@/redux/auth/constants';\nimport { IUserSignupDataWithConfirmPassword } from '@/pages/Signup';\n\nfunction OtherDetails({\n formData,\n errors,\n setFormData,\n}: {\n formData: IUserSignupDataWithConfirmPassword;\n errors: { [key: string]: string };\n setFormData: Dispatch<SetStateAction<IUserSignupDataWithConfirmPassword>>;\n}) {\n const signupBaiscDetailsForm = useSignupOtherDetailsForm();\n\n return (\n <div className=\"space-y-6\">\n <SectionHeader\n title=\"Registration\"\n description=\"Fill in the registration data. It will take a couple of minutes\"\n align=\"left\"\n />\n <div className=\"space-y-4\">\n <Form {...signupBaiscDetailsForm}>\n <form>\n <div className=\"flex flex-col py-2 gap-4\">\n <div className=\"flex flex-col gap-2\">\n <FormField\n control={signupBaiscDetailsForm.control}\n name=\"cncBrand\"\n render={({ field }) => (\n <FormItem>\n <FormLabel>CNC Brand</FormLabel>\n <FormControl>\n <CreatableSelect\n options={getOptionsFromList(CNC_BRAND_OPTIONS)}\n name={field.name}\n onChange={(brand) => {\n setFormData((prev) => ({\n ...prev,\n cncBrand: brand?.value as string,\n cncModel: '',\n }));\n }}\n />\n </FormControl>\n <ErrorMessage error={errors.cncBrand} />\n </FormItem>\n )}\n />\n </div>\n {formData?.cncBrand === 'Onefinity' && (\n <div className=\"flex flex-col gap-2\">\n <FormField\n control={signupBaiscDetailsForm.control}\n name=\"cncModel\"\n render={({ field }) => (\n <FormItem>\n <FormLabel>CNC Model</FormLabel>\n <FormControl>\n <CreatableSelect\n options={getOptionsFromList(CNC_MODEL_OPTIONS)}\n name={field.name}\n onChange={(model) => {\n setFormData((prev) => ({\n ...prev,\n cncModel: model?.value as string,\n }));\n }}\n />\n </FormControl>\n <ErrorMessage error={errors.cncModel} />\n </FormItem>\n )}\n />\n </div>\n )}\n </div>\n </form>\n </Form>\n </div>\n </div>\n );\n}\n\nexport default OtherDetails;\n","import { toast } from 'sonner';\nimport { useDispatch, useSelector } from 'react-redux';\nimport { useNavigate } from 'react-router-dom';\nimport { Fragment, useEffect, useState } from 'react';\nimport CarouselHeader from '@/components/FullPageCarousel/CarouselHeader';\nimport { Button } from '@/components/ui/button';\nimport { cn, validateStep } from '@/lib/utils';\nimport {\n signupBasicDetailsWithEmailSchema,\n signupBasicDetailsWithGoogleSchema,\n signupOtherDetailsSchema,\n} from '@/redux/auth/auth.schema';\nimport BasicDetails from './Carousel/BasicDetails';\nimport { AuthProvider, IUserSignupData } from '@/redux/auth/auth.d';\nimport OtherDetails from './Carousel/OtherDetails';\nimport { selectCurrentUser } from '@/redux/auth/auth.slice';\nimport {\n useCompleteUserSignupMutation,\n useGetUserQuery,\n useLogoutMutation,\n useSignupMutation,\n} from '@/redux/auth/auth.api.slice';\nimport { setShowLoginDialog } from '@/redux/global/global.slice';\n\nexport interface IUserSignupDataWithConfirmPassword extends IUserSignupData {\n confirmPassword: string;\n}\n\nfunction Signup() {\n const [currentStep, setCurrentStep] = useState(1);\n const [errors, setErrors] = useState<{ [key: string]: string }>({});\n const { user, isAuthenticated } = useSelector(selectCurrentUser);\n const [signup, { isLoading: isSignupLoading }] = useSignupMutation();\n const { refetch: refetchUser } = useGetUserQuery();\n const dispatch = useDispatch();\n\n const [logout] = useLogoutMutation();\n const [completeSignup, { isLoading: isCompleteSignupLoading }] =\n useCompleteUserSignupMutation();\n const navigate = useNavigate();\n\n const IS_USER_SINGUP_COMPLETE: boolean = Boolean(user?.isUserSignupComplete);\n const IS_SOCIAL_LOGIN: boolean = user?.authProvider !== AuthProvider.Email;\n\n const [formData, setFormData] = useState<IUserSignupDataWithConfirmPassword>({\n profilePicture: undefined,\n username: '',\n firstname: '',\n lastname: '',\n email: '',\n cncBrand: '',\n cncModel: '',\n password: '',\n confirmPassword: '',\n locatedAt: 'Yet to be collected',\n });\n\n useEffect(() => {\n if (user) {\n setFormData((prev) => ({\n ...prev,\n firstname: user.firstname,\n lastname: user.lastname,\n email: user.email,\n cncBrand: user.cncBrand,\n cncModel: user.cncModel,\n profilePicture: user.profilePicture,\n }));\n }\n }, [user, isAuthenticated]);\n\n const pages = [\n {\n page: (\n <BasicDetails\n formData={formData}\n errors={errors}\n setFormData={setFormData}\n user={user}\n key=\"basic-details\"\n />\n ),\n schema: !(Boolean(user) && IS_SOCIAL_LOGIN && !IS_USER_SINGUP_COMPLETE)\n ? signupBasicDetailsWithEmailSchema\n : signupBasicDetailsWithGoogleSchema,\n },\n {\n page: (\n <OtherDetails\n formData={formData}\n errors={errors}\n setFormData={setFormData}\n key=\"other-details\"\n />\n ),\n schema: signupOtherDetailsSchema,\n },\n ];\n\n const handleSignupSubmit = async () => {\n try {\n if (!(Boolean(user) && IS_SOCIAL_LOGIN && !IS_USER_SINGUP_COMPLETE)) {\n await signup({\n email: formData.email,\n password: formData.password,\n username: formData.username,\n firstname: formData.firstname,\n lastname: formData.lastname,\n cncBrand: formData.cncBrand,\n cncModel: formData.cncModel,\n locatedAt: 'Yet to be collected',\n ...(formData.profilePicture\n ? { profilePicture: formData.profilePicture }\n : {}),\n }).unwrap();\n await refetchUser();\n } else {\n await completeSignup({\n username: formData.username,\n firstname: formData.firstname,\n lastname: formData.lastname,\n cncBrand: formData.cncBrand,\n cncModel: formData.cncModel,\n locatedAt: 'Yet to be collected',\n ...(formData.profilePicture\n ? { profilePicture: formData.profilePicture }\n : {}),\n }).unwrap();\n await refetchUser();\n }\n toast.success('Signup successful');\n navigate('/');\n } catch (error: any) {\n toast.error('Signup Failed', {\n description: error.data.errorMessage,\n });\n }\n };\n\n const handleNext = async () => {\n const validationResult = await validateStep(\n currentStep,\n pages,\n formData,\n setErrors\n );\n if (validationResult.success) {\n setErrors({});\n setCurrentStep((prev) => Math.min(prev + 1, pages.length));\n } else {\n toast.error('Please fix the errors before continuing.');\n return;\n }\n\n if (currentStep === pages.length) {\n handleSignupSubmit();\n }\n };\n\n const handleBack = () => {\n setCurrentStep((prev) => Math.max(prev - 1, 1));\n };\n\n if (Boolean(user) && IS_USER_SINGUP_COMPLETE) {\n navigate('/');\n }\n\n const handleLogin = async () => {\n await logout();\n await refetchUser();\n navigate('/');\n dispatch(setShowLoginDialog(true));\n };\n\n return (\n <div className=\"min-h-screen flex items-center justify-center bg-background flex-col pb-[100px]\">\n <CarouselHeader disabled={isCompleteSignupLoading || isSignupLoading} />\n <div className=\"flex-grow flex items-center justify-center w-full\">\n <div className=\"w-full max-w-lg space-y-8 p-3\">\n <div className=\"flex items-center space-x-2\">\n {pages.map((_, index) => (\n <Fragment key={index + 1}>\n <div\n className={cn(\n 'w-3 h-3 rounded-full',\n currentStep >= index + 1 ? 'bg-[#34C759]' : 'bg-muted'\n )}\n />\n {index + 1 < pages.length && (\n <div\n className={cn(\n 'w-16 h-0.5',\n currentStep > index + 1 ? 'bg-[#34C759]' : 'bg-muted'\n )}\n />\n )}\n </Fragment>\n ))}\n </div>\n {pages[currentStep - 1].page}\n <div className=\"flex justify-between mt-8 w-full gap-2\">\n {currentStep > 1 && currentStep < pages.length && (\n <Button\n variant=\"outline\"\n onClick={handleBack}\n className=\"w-full rounded-lg\"\n >\n Back\n </Button>\n )}\n {currentStep < pages.length ? (\n <Button className=\"w-full rounded-lg\" onClick={handleNext}>\n Next\n </Button>\n ) : (\n <>\n {currentStep >= 1 && currentStep <= pages.length && (\n <Button\n variant=\"outline\"\n onClick={handleBack}\n className=\"w-full rounded-lg\"\n >\n Back\n </Button>\n )}\n <Button\n className=\"w-full rounded-lg\"\n onClick={handleNext}\n disabled={isCompleteSignupLoading || isSignupLoading}\n >\n Signup\n </Button>\n </>\n )}\n </div>\n <p className=\"text-sm text-muted-foreground\">\n Already have an account with filefinity,{' '}\n <Button\n variant=\"link\"\n className=\"text-primary underline cursor-pointer bg-transparent border-none p-0\"\n onClick={handleLogin}\n >\n login here\n </Button>\n </p>\n </div>\n </div>\n </div>\n );\n}\n\nexport default Signup;\n","import { ReactNode, useEffect } from 'react';\nimport { useSelector } from 'react-redux';\nimport { useNavigate } from 'react-router-dom';\nimport { selectCurrentUser } from '@/redux/auth/auth.slice';\n\nfunction RouteWrapper({ children }: { children: ReactNode }) {\n const { user, isAuthenticated } = useSelector(selectCurrentUser);\n const navigate = useNavigate();\n\n useEffect(() => {\n if (isAuthenticated && !user?.isUserSignupComplete) {\n navigate('/signup');\n }\n }, [user, isAuthenticated, navigate]);\n\n return children;\n}\n\nexport default RouteWrapper;\n","function PrivacyPolicy() {\n return (\n <div className=\"p-6 py-[84px]\">\n <section className=\"mb-8\">\n <h2 className=\"text-2xl font-bold mb-4\">Introduction</h2>\n <p className=\"text-gray-700\">\n Welcome to our Privacy Policy page! When you use our web services, you\n trust us with your information. This Privacy Policy is meant to help\n you understand what data we collect, why we collect it, and what we do\n with it. This is important; we hope you will take time to read it\n carefully.\n </p>\n </section>\n <section className=\"mb-8\">\n <h2 className=\"text-2xl font-bold mb-4\">Information We Collect</h2>\n <p className=\"text-gray-700\">\n We collect information to provide better services to all our users. We\n collect information in the following ways:\n </p>\n <ul className=\"list-disc list-inside text-gray-700\">\n <li className=\"mb-2\">\n Information you give us. For example, our services require you to\n sign up for an account. When you do, we’ll ask for personal\n information, like your name, email address, telephone number\n </li>\n <li className=\"mb-2\">\n Information we get from your use of our services. We collect\n information about the services that you use and how you use them,\n like when you visit a website that uses our advertising services or\n you view and interact with our ads and content.\n </li>\n </ul>\n </section>\n <section className=\"mb-8\">\n <h2 className=\"text-2xl font-bold mb-4\">\n How We Use Information We Collect\n </h2>\n <p className=\"text-gray-700\">\n We use the information we collect from all our services to provide,\n maintain, protect, and improve them, to develop new ones, and to\n protect our users. We also use this information to offer you tailored\n content – like giving you more relevant search results and ads.\n </p>\n </section>\n <section className=\"mb-8\">\n <h2 className=\"text-2xl font-bold mb-4\">Information We Share</h2>\n <p className=\"text-gray-700\">\n We do not share personal information with companies, organizations,\n and individuals outside of our company unless one of the following\n circumstances applies:\n </p>\n <ul className=\"list-disc list-inside text-gray-700\">\n <li className=\"mb-2\">\n With your consent. We will share personal information with\n companies, organizations, or individuals outside of our company when\n we have your consent to do so.\n </li>\n <li className=\"mb-2\">\n For legal reasons. We will share personal information with\n companies, organizations, or individuals outside of our company if\n we have a good-faith belief that access, use, preservation, or\n disclosure of the information is reasonably necessary to meet any\n applicable law, regulation, legal process, or enforceable\n governmental request.\n </li>\n </ul>\n </section>\n </div>\n );\n}\n\nexport default PrivacyPolicy;\n","import { z } from 'zod';\nimport { toast } from 'sonner';\nimport { useDispatch } from 'react-redux';\nimport { useNavigate } from 'react-router-dom';\nimport { useResetPasswordForm } from '../useAuthForm';\nimport { Button } from '@/components/ui/button';\nimport {\n Form,\n FormControl,\n FormField,\n FormItem,\n FormLabel,\n FormMessage,\n} from '@/components/ui/form';\nimport { Input } from '@/components/ui/input';\nimport { useResetPasswordMutation } from '../auth.api.slice';\nimport useSearchParamActions from '@/customHooks/useSearchParamActions';\nimport NotFound from '@/pages/NotFound';\nimport { resetPasswordSchema } from '../auth.schema';\nimport { setShowLoginDialog } from '@/redux/global/global.slice';\n\nfunction ResetPasswordForm() {\n const resetPasswordForm = useResetPasswordForm();\n const [resetPassword, { isLoading: isResetPasswordLoading }] =\n useResetPasswordMutation();\n const { getSearchParam } = useSearchParamActions();\n const resetToken = getSearchParam('resetToken');\n const navigate = useNavigate();\n const dispatch = useDispatch();\n\n async function handleResetPasswordSubmit(\n values: z.infer<typeof resetPasswordSchema>\n ) {\n if (!resetToken) return;\n try {\n const data = await resetPassword({\n password: values.password,\n token: resetToken,\n }).unwrap();\n\n if (data.status !== 'success') {\n toast.error('Reset Password Failed', {\n description: (data as any)?.errorMessage || 'Something went wrong',\n });\n }\n\n navigate('/');\n dispatch(setShowLoginDialog(true));\n toast.success('Reset Password successful');\n } catch (error: any) {\n toast.error('Reset Password Failed', {\n description: error?.data?.errorMessage || 'Something went wrong',\n });\n }\n }\n\n if (!resetToken) {\n return <NotFound />;\n }\n\n return (\n <Form {...resetPasswordForm}>\n <form\n onSubmit={resetPasswordForm.handleSubmit(handleResetPasswordSubmit)}\n >\n <div>\n <h1 className=\"font-primary text-lg font-bold text-center\">\n Reset Your Password !\n </h1>\n <p className=\"text-center font-secondary text-[16px] text-[#666666]\">\n Please enter your password below to reset it.\n </p>\n </div>\n <div className=\"flex flex-col py-2 gap-4\">\n <div className=\"flex flex-col gap-2\">\n <FormField\n control={resetPasswordForm.control}\n name=\"password\"\n render={({ field }) => (\n <FormItem>\n <FormLabel>Password</FormLabel>\n <FormControl>\n <Input\n type=\"password\"\n autoComplete=\"new-password\"\n placeholder=\"Enter your password\"\n {...field}\n />\n </FormControl>\n <FormMessage />\n </FormItem>\n )}\n />\n </div>\n <div className=\"flex flex-col gap-2\">\n <FormField\n control={resetPasswordForm.control}\n name=\"confirmPassword\"\n render={({ field }) => (\n <FormItem>\n <FormLabel>Confirm Password</FormLabel>\n <FormControl>\n <Input\n type=\"password\"\n autoComplete=\"new-password\"\n placeholder=\"Confirm your password\"\n {...field}\n />\n </FormControl>\n <FormMessage />\n </FormItem>\n )}\n />\n </div>\n </div>\n <div className=\"mt-2\">\n <div className=\"flex flex-col gap-2 w-full\">\n <Button\n type=\"submit\"\n className=\"w-full bg-black font-bold\"\n disabled={isResetPasswordLoading}\n >\n Change Password\n </Button>\n </div>\n </div>\n </form>\n </Form>\n );\n}\n\nexport default ResetPasswordForm;\n","import ResetPasswordForm from '@/redux/auth/ResetPassword/ResetPasswordForm';\n\nfunction ResetPassword() {\n return (\n <div className=\"flex items-center justify-center min-h-screen\">\n <ResetPasswordForm />\n </div>\n );\n}\n\nexport default ResetPassword;\n","import { z } from 'zod';\nimport { toast } from 'sonner';\nimport { useDispatch } from 'react-redux';\nimport { useNavigate } from 'react-router-dom';\nimport { useChangePasswordForm } from '../useAuthForm';\nimport { Button } from '@/components/ui/button';\nimport {\n Form,\n FormControl,\n FormField,\n FormItem,\n FormLabel,\n FormMessage,\n} from '@/components/ui/form';\nimport { Input } from '@/components/ui/input';\nimport {\n useChangePasswordMutation,\n useLazyGetUserQuery,\n} from '../auth.api.slice';\nimport { changePasswordSchema } from '../auth.schema';\nimport { setShowLoginDialog } from '@/redux/global/global.slice';\n\nfunction ChangePasswordForm() {\n const changePasswordForm = useChangePasswordForm();\n const [changePassword, { isLoading: isChangePasswordLoading }] =\n useChangePasswordMutation();\n const [getCurrentUser] = useLazyGetUserQuery();\n const navigate = useNavigate();\n const dispatch = useDispatch();\n\n async function handleChangePasswordSubmit(\n values: z.infer<typeof changePasswordSchema>\n ) {\n try {\n const data = await changePassword({\n newPassword: values.newPassword,\n currentPassword: values.currentPassword,\n }).unwrap();\n\n if (data.status !== 'success') {\n toast.error('Change Password Failed', {\n description: (data as any)?.errorMessage || 'Something went wrong',\n });\n }\n await getCurrentUser();\n navigate('/');\n dispatch(setShowLoginDialog(true));\n toast.success('Password Changed successfully');\n } catch (error: any) {\n toast.error('Change Password Failed', {\n description: error?.data?.errorMessage || 'Something went wrong',\n });\n }\n }\n\n return (\n <Form {...changePasswordForm}>\n <form\n onSubmit={changePasswordForm.handleSubmit(handleChangePasswordSubmit)}\n >\n <div>\n <h1 className=\"font-primary text-lg font-bold text-center\">\n Change Your Password\n </h1>\n <p className=\"text-center font-secondary text-[16px] text-[#666666]\">\n Enter your current and new password to update it.\n </p>\n </div>\n <div className=\"flex flex-col py-2 gap-4\">\n <div className=\"flex flex-col gap-2\">\n <FormField\n control={changePasswordForm.control}\n name=\"currentPassword\"\n render={({ field }) => (\n <FormItem>\n <FormLabel>Current Password</FormLabel>\n <FormControl>\n <Input\n type=\"password\"\n autoComplete=\"current-password\"\n placeholder=\"Enter your password\"\n {...field}\n />\n </FormControl>\n <FormMessage />\n </FormItem>\n )}\n />\n </div>\n </div>\n <div className=\"flex flex-col py-2 gap-4\">\n <div className=\"flex flex-col gap-2\">\n <FormField\n control={changePasswordForm.control}\n name=\"newPassword\"\n render={({ field }) => (\n <FormItem>\n <FormLabel>New Password</FormLabel>\n <FormControl>\n <Input\n type=\"password\"\n autoComplete=\"new-password\"\n placeholder=\"Enter your password\"\n {...field}\n />\n </FormControl>\n <FormMessage />\n </FormItem>\n )}\n />\n </div>\n <div className=\"flex flex-col gap-2\">\n <FormField\n control={changePasswordForm.control}\n name=\"confirmPassword\"\n render={({ field }) => (\n <FormItem>\n <FormLabel>Confirm New Password</FormLabel>\n <FormControl>\n <Input\n type=\"password\"\n autoComplete=\"new-password\"\n placeholder=\"Confirm your password\"\n {...field}\n />\n </FormControl>\n <FormMessage />\n </FormItem>\n )}\n />\n </div>\n </div>\n <div className=\"mt-2\">\n <div className=\"flex flex-col gap-2 w-full\">\n <Button\n type=\"submit\"\n className=\"w-full bg-black font-bold\"\n disabled={isChangePasswordLoading}\n >\n Change Password\n </Button>\n </div>\n </div>\n </form>\n </Form>\n );\n}\n\nexport default ChangePasswordForm;\n","import ChangePasswordForm from '@/redux/auth/ChangePassword/ChangePasswordForm';\n\nfunction ChangePassword() {\n return (\n <div className=\"flex items-center justify-center min-h-screen\">\n <ChangePasswordForm />\n </div>\n );\n}\n\nexport default ChangePassword;\n","import { createBrowserRouter } from 'react-router-dom';\nimport Landing from '../pages/Landing';\nimport ModalDetail from '@/pages/PostDetail';\nimport Navbar from '@/components/Navbar';\nimport Profile from '@/pages/Profile';\nimport MyModels from '@/pages/MyModels';\nimport PrivateRoute from '@/components/PrivateRoute';\nimport PreviewModalDetail from '@/pages/Preview';\nimport PostUpload from '@/pages/PostUpload';\nimport Footer from '@/components/Footer';\nimport Signup from '@/pages/Signup';\nimport RouteWrapper from '@/components/RouteWrapper';\nimport PrivacyPolicy from '@/pages/PrivacyPolicy';\nimport NotFound from '@/pages/NotFound';\nimport ResetPassword from '@/pages/ResetPassword';\nimport ChangePassword from '@/pages/ChangePassword';\n\nconst routerRoutes = createBrowserRouter([\n {\n path: '/',\n element: (\n <RouteWrapper>\n <Navbar />\n <Landing />\n <Footer />\n </RouteWrapper>\n ),\n },\n {\n path: '/model/:id',\n element: (\n <RouteWrapper>\n <Navbar />\n <ModalDetail />\n <Footer />\n </RouteWrapper>\n ),\n },\n {\n path: '/model/preview/',\n element: (\n <RouteWrapper>\n <Navbar />\n <PreviewModalDetail />\n <Footer />\n </RouteWrapper>\n ),\n },\n {\n path: '/myprojects',\n element: (\n <RouteWrapper>\n <PrivateRoute>\n <Navbar />\n <MyModels />\n </PrivateRoute>\n <Footer />\n </RouteWrapper>\n ),\n },\n {\n path: '/profile',\n element: (\n <RouteWrapper>\n <PrivateRoute>\n <Navbar />\n <Profile />\n </PrivateRoute>\n <Footer />\n </RouteWrapper>\n ),\n },\n {\n path: '/project/create',\n element: (\n <RouteWrapper>\n <PrivateRoute>\n <PostUpload />\n <Footer />\n </PrivateRoute>\n </RouteWrapper>\n ),\n },\n {\n path: '/project/edit/:postId',\n element: (\n <RouteWrapper>\n <PrivateRoute>\n <PostUpload />\n <Footer />\n </PrivateRoute>\n </RouteWrapper>\n ),\n },\n {\n path: '/changePassword',\n element: (\n <RouteWrapper>\n <PrivateRoute>\n <Navbar />\n <ChangePassword />\n <Footer />\n </PrivateRoute>\n </RouteWrapper>\n ),\n },\n {\n path: '/signup',\n element: <Signup />,\n },\n {\n path: '/resetPassword',\n element: (\n <>\n <Navbar />\n <ResetPassword />\n <Footer />\n </>\n ),\n },\n {\n path: '/privacyPolicy',\n element: (\n <>\n <Navbar />\n <PrivacyPolicy />\n <Footer />\n </>\n ),\n },\n {\n path: '*',\n element: <NotFound />,\n },\n]);\n\nexport default routerRoutes;\n","import { RouterProvider } from 'react-router-dom';\nimport { useDispatch } from 'react-redux';\nimport { useEffect } from 'react';\nimport routerRoutes from './config/routes';\nimport { useGetUserQuery } from './redux/auth/auth.api.slice';\nimport { setCredentials, setLogout } from './redux/auth/auth.slice';\nimport '@/assets/quill.css';\nimport '@/assets/postCommentsTimeline.css';\n\nfunction App() {\n const dispatch = useDispatch();\n const { data: user, error, isLoading, isSuccess } = useGetUserQuery();\n\n useEffect(() => {\n if (isLoading) return; // Show a loading state if needed\n\n if (error) {\n dispatch(setLogout()); // Clear any previous credentials if there's an error\n return;\n }\n if (!user && !isLoading) {\n dispatch(setLogout());\n return;\n }\n if (isSuccess) {\n dispatch(setCredentials(user));\n }\n }, [user, error, isLoading, dispatch, isSuccess]);\n return <RouterProvider router={routerRoutes} />;\n}\n\nexport default App;\n","import { configureStore } from '@reduxjs/toolkit';\n// eslint-disable-next-line import/no-cycle\nimport apiSlice from './api/api.slice';\nimport authReducer from './auth/auth.slice';\nimport gloablReducer from './global/global.slice';\n\nconst store = configureStore({\n reducer: {\n [apiSlice.reducerPath]: apiSlice.reducer,\n auth: authReducer,\n global: gloablReducer,\n },\n middleware: (getDefaultMiddleware) =>\n getDefaultMiddleware().concat(apiSlice.middleware),\n devTools: true,\n});\n// concat api slice middleware here\n// dev tools based on env\n\nexport type RootState = ReturnType<typeof store.getState>;\nexport type AppDispatch = typeof store.dispatch;\nexport default store;\n","import { FallbackProps } from 'react-error-boundary';\n\ninterface ErrorPage extends FallbackProps {}\n\nfunction Error({ error }: ErrorPage) {\n return (\n <div>\n <p>Something went wrong:</p>\n <pre style={{ color: 'red' }}>{error.message}</pre>\n </div>\n );\n}\n\nexport default Error;\n","import { ErrorBoundary } from 'react-error-boundary';\nimport { Toaster } from 'sonner';\nimport { Provider } from 'react-redux';\nimport React from 'react';\nimport ReactDOM from 'react-dom/client';\n// eslint-disable-next-line import/no-extraneous-dependencies\nimport * as Sentry from '@sentry/react';\nimport App from './App';\nimport './index.css';\nimport store from './redux/store';\nimport Error from './pages/Error';\n\nif (process.env.NODE_ENV === 'production') {\n Sentry.init({\n dsn: import.meta.env.VITE_SENTRY_DSN,\n integrations: [\n Sentry.browserTracingIntegration(),\n Sentry.replayIntegration(),\n ],\n tracesSampleRate: 1.0,\n tracePropagationTargets:\n import.meta.env.VITE_SENTRY_TRACE_PROPAGATION_TARGETS.split(','),\n replaysSessionSampleRate: 1.0,\n replaysOnErrorSampleRate: 1.0,\n });\n}\n\nReactDOM.createRoot(document.getElementById('root')!).render(\n <ErrorBoundary FallbackComponent={Error}>\n <Provider store={store}>\n <React.StrictMode>\n <App />\n <Toaster position=\"top-right\" duration={1000} richColors />\n </React.StrictMode>\n </Provider>\n </ErrorBoundary>\n);\n"],"file":"assets/index-BLoBGe1Z.js"}